Python:将两个列表压缩到字典中时维护原始顺序

时间:2017-01-14 15:55:18

标签: python csv

我正在读取CSV文件并将行组合成字典,第一行包含键,后续行包含值。 我希望我的字典键与原始csv文件的顺序相同,但是dict(zip))函数似乎是随机排序的。我尝试过OrderedDict但是没有用。

如果有更好的方法来制作我的词典,我愿意接受建议,但我真的想知道如何在保留现有代码的同时做到这一点,因为我对Python很新(并且编程为一般而且我希望能够理解我自己的代码。

import csv     # imports the csv module

with open("csvfile.csv", "r") as file_var:
    reader = csv.reader(file_var)
    my_list = []
    for row in reader:
        if (len(row)!=0):
            my_list = my_list + [row]

for i in range(1, len(my_list)):
    user = dict(zip(my_list[0], my_list[i]))
    print "----------------------"
    print user['first_name'], user['last_name']
    for key in user:
        print key, user[key]

1 个答案:

答案 0 :(得分:1)

字典有任意顺序。您应该使用SharedStringsTable代替。

OrderedDict

我注意到你说它不起作用,但我认为没有理由不这样做。它以什么方式失败了?