无法建立两个词典

时间:2015-07-14 13:39:03

标签: python dictionary

我想从同一个csv文件构建两个非常相似的字典(一个映射行[0]到行[5],一个从行[0]到行[6]。出于某种原因,我只能构建一个无论我先运行这两行中的哪一行,字典都存在并完全符合我的要求。另一行是空的。不知道出了什么问题。

mydict = {row[0]:row[5] for row in csv.reader(g)}
mydict1 = {row[0]:row[6] for row in csv.reader(g)}

我正在使用python 3,并尝试更改字典名称和其他一些东西。

1 个答案:

答案 0 :(得分:3)

您不能在不将文件重新开始的情况下两次迭代文件。这样做也不是很有效率;最好不要在这里使用字典理解:

mydict1, mydict2 = {}, {}
for row in csv.reader(g):
    mydict1[row[0]] = row[5]
    mydict2[row[0]] = row[6]

如果您真的坚持,可以使用file.seek(0)将文件指针放回到开头;你不需要在这里重新创建阅读器:

reader = csv.reader(g)
mydict1 = {row[0]:row[5] for row in reader}
g.seek(0)
mydict2 = {row[0]:row[6] for row in reader}