关于python:如何从实数列表中删除引号?

How do I remove quotation marks from a list of real numbers?

本问题已经有最佳答案,请猛点这里访问。

我正在从一个cvs文件中读取数据,当我将数据导入到一个列表中时,它将把数字当作字符串处理。这是输出:['1.0', '1.20798878439', '1.52379907139'],但是我想要类似于[1.0, 1.20798878439, 1.52379907139]的东西,这样我就可以处理实数而不是字符串了?有什么建议吗?


1
2
my_string_list = ['1.0', '1.20798878439', '1.52379907139']
my_int_list = [float(i) for i in my_string_list]

您只需对其进行迭代,并将其转换为所需的数据类型。

正如@ianauld所指出的,这称为类型转换或类型转换。

有些库可以为您处理更复杂的转换。但最基本的是一个for循环,遍历列表中的每个对象并转换它,最后将结果放入一个新的列表。

如果我将我的答案从使用list comprehensions扩展到使用常规for循环,它将如下所示:

1
2
3
4
my_string_list = ['1.0', '1.20798878439', '1.52379907139']
my_int_list = []
for item in my_string_list:
    my_int_list.append(float(item))


通过使用这样的列表理解,您可以轻松地键入cast并创建新列表:

1
2
>>> [float(x) for x in ['1.0', '1.20798878439', '1.52379907139']]
[1.0, 1.20798878439, 1.52379907139]

使用变量:

1
2
3
4
>>> a = [1.0, 1.20798878439, 1.52379907139]
>>> b = [float(x) for x in a]
>>> print(b)
[1.0, 1.20798878439, 1.52379907139]

有关列表理解的更多信息:https://docs.python.org/3/tutorial/datastructures.html列出理解