在python中,CSV附加列表中的十进制数变为单引号。如何将元素更改为int或float?

在python中,CSV附加列表中的十进制数变为单引号。如何将元素更改为int或float?,python,csv,Python,Csv,将CSV文件中的一列(带字符串标题和十进制数字)添加到列表后,这些数字在列表中变为单引号。不能做一个总和等,我弹出的列表后,填充标题。还尝试附加不带标题的列表。同样的问题。任何我可以删除引号并将元素转换为浮点数的方法我的列表的示例如下: ['22.13', '17.25', '16.05666666666667', '16.94', '17.0', '16.083333333333332', '15.09', '15.9', '14.213333333333333', '12.246666666

将CSV文件中的一列(带字符串标题和十进制数字)添加到列表后,这些数字在列表中变为单引号。不能做一个总和等,我弹出的列表后,填充标题。还尝试附加不带标题的列表。同样的问题。任何我可以删除引号并将元素转换为浮点数的方法我的列表的示例如下:

['22.13', '17.25', '16.05666666666667', '16.94', '17.0', '16.083333333333332', '15.09', '15.9', '14.213333333333333', '12.246666666666666']

我还有很多事情要做,但我仍停留在这一点上。谢谢

列表中的元素是字符串。你需要把它们扔到浮子上

[float(x) for x in my_list]

我猜您正在使用python的模块

引用文件:

从csv文件读取的每一行都作为字符串列表返回。不 执行自动数据类型转换

您唯一的选择是在读取文件后键入列表。以下一个班轮将为您提供:

mylist = map(float, mylist)

假设您正在使用stdlib中的
csv.Reader
,请注意以下内容:

从csv文件读取的每一行都作为字符串列表返回。不 执行自动数据类型转换

您必须在数字列上调用
float()
,才能将字符串转换为float。如果所有值都是浮点数,则可以使用列表:

row = [float(value) for value in row]

工作很好,但这也应该工作的权利?它以前不起作用,但现在起作用了。reader=csv.reader(open(“shortfloat.txt”,“rb”))用于reader:cpu_util.append(float(row[2])中的行。如果标题仍然在,我想我必须在追加列表时执行此操作。同样有效。为什么在读取csv文件时不能更改为浮动。在读取文件时,我在for循环中尝试了这个-cpu_util.append(float(row[2])),它可以工作。出于某种奇怪的原因,它之前没有工作。这是因为csv文件读取器不会自动知道列的数据类型。您总是可以在csv阅读器周围编写一个自定义包装器来猜测数据类型并相应地转换它们。如果提供的解决方案有效,您可能会接受答案。已经提到Chris和您的答案都很好。我错过了for循环中的方括号。reader=csv.reader(open(“VSrvCurCon_semi.csv”,“rb”))next(reader)##跳过reader:cpu_util.append(float(行[2])中的行的标题行