我想创建一个基于csv第一列作为键的字典。我可以使用.split()来完成这项工作,还是csv.dictreader会自动将键从第一列中去掉?
from collections import defaultdict
import csv
import sys
#import csv file and store in dictionary
dict=defaultdict(list)
file=csv.reader(open(‘sys.argv[1]’,‘rt’))
for f in file:
a,b,c,d=f.split()
dict[a].append((b,c,d))
file.close()
csv.reader
应该已经根据指定的分隔符将行拆分。所以像这样:会给你这个:
你不应该做
row.split()
。还有几件事:
1)不要覆盖python内置名称。
file
是python内置的(就像dict
)。给你的读者打电话csv_file
或者别的什么(也给你的字典改名)。2)除非您计划稍后在脚本中使用
defaultdict
功能,否则您所需要的只是一个好的老规则dict
3)首先不需要将
f
的内容解压缩两次。当只需要一个步骤时,您可以将此过程分为两步:实施
相关问题 更多 >
编程相关推荐