String 将str列表更改为int列表
我正在尝试读取CSV文件,并将数据作为INT列表返回。CSV文件有6列宽和2行。使用Python 3.4 它总是以STR列表的形式出现。搜索StackOverflow和Google显示了7种不同的方法,但都不起作用。下面是我尝试过的代码String 将str列表更改为int列表,string,list,csv,python-3.x,String,List,Csv,Python 3.x,我正在尝试读取CSV文件,并将数据作为INT列表返回。CSV文件有6列宽和2行。使用Python 3.4 它总是以STR列表的形式出现。搜索StackOverflow和Google显示了7种不同的方法,但都不起作用。下面是我尝试过的代码 import csv b = [] with open('C:\Python34\DataforProgramstorun\\csv data6x2.csv') as f: reader = csv.reader(f) for row in reader :
import csv
b = []
with open('C:\Python34\DataforProgramstorun\\csv data6x2.csv') as f:
reader = csv.reader(f)
for row in reader :
b.append(row) # this gives me a list of list each element a csv str from print (b)
print (b)
结果是:
[['2', '5', '15', '17', '19', '20'], ['6', '8', '14', '18', '21', '30']]
我希望是:
[[2, 5, 15, 17, 19, 20], [6, 8, 14, 18, 21, 30]]
以下工作均未完成:
[int(x)for y in b for x in y.split()]#builtins.AttributeError:'list'对象没有属性“split”
[int(x)表示“”中的x。join(b).split()]#builtins.TypeError:序列项0:预期的str实例,找到的列表
按原样导入itertools;new=list(it.imap(int,b))#builtins.AttributeError:'module'对象没有属性'imap'
对于范围(0,len(b))中的i:b[i]=int(b[i])#内置。TypeError:int()参数必须是字符串或数字,而不是“列表”
results=b;results=[results中i的int(i)]##内置。TypeError:int()参数必须是字符串或数字,而不是“list”
b=list(map(int,b))35; builtins.TypeError:int()参数必须是字符串或数字,而不是“list”
[int(i)for i in b]35; builtins.TypeError:int()参数必须是字符串或数字,而不是“list”
for i, sublist in enumerate(b):
b[i] = [int(x) for x in sublist]
您还可以使用许多其他解决方案中的一种来将(子)列表中的所有字符串转换为int,而不是
[int(x)for x in sublist]
,例如list(map(int,sublist))
On#3,Python 3没有itertools.imap
,因为map
现在是一个迭代器。在其他大多数情况下,请注意,您需要将它们应用于b
中的每个列表,而不是应用于b
本身。谢谢,除了解决方案之外,您还告诉了我为什么my无法工作。非常感谢
for i, sublist in enumerate(b):
b[i] = [int(x) for x in sublist]