2015-04-25 72 views
1

的名單列表,我有以下CSV文件導入CSV作爲整數

12,29,63,44 
54,43,65,34 

我試圖導入爲列表的列表,使得每個索引是一個整數。這是迄今爲止我所擁有的。

import csv 
filename = 'file.csv' 
with open(filename, 'rU') as p: 
     #reads csv into a list of lists 
     my_list = list(list(rec) for rec in csv.reader(p, delimiter=',')) 

print my_list 
>>> [['12','29','63','44'],['54','43','65','34']] 

正如你所看到的,這產生了一個字符串列表,而不是整數列表。如何導入CSV文件作爲整數列表的列表?這樣

>>> [[12,29,63,44],[54,43,65,34]] 
+1

使用理解或'map'。似乎你已經意識到理解和生成器表達式。 –

回答

7

map爲int:

my_list = [list(map(int,rec)) for rec in csv.reader(p, delimiter=',')] 

[[12, 29, 63, 44], [54, 43, 65, 34]] 

即相當於:

my_list = [[int(x) for x in rec] for rec in csv.reader(p, delimiter=',')]