接收打开的csv文件的Heres函数(open_file())。对于每一行,我做了一个for循环来遍历每一行。对于每个州,为州名创建一个关键字典,同时将其作为列表中的值的城市和日期。但是,如果城市和日期相同,请跳过该行。
继承人csv文件:
State City Date
Michigan Detroit 3/31/00
Michigan Detroit 3/31/00
Michigan Detroit 3/31/00
Michigan Detroit 4/1/00
Michigan Detroit 4/2/00
到目前为止我的代码:
def read_file(fp):
reader = csv.reader(fp)
state = {}
for line in reader:
city = ''
date = ''
if line[1] != city:
city = line[1]
if line[2] != date:
date = line[2]
print(state)
正确的输出:
state = {'Michigan': [['Detroit', '3/31/2000'],
['Detroit', '4/1/2000'],['Detroit', '4/2/2000']]
答案 0 :(得分:0)
city + '|' + date
。这将自动消除任何重复。你不要跳过这条线;你只是让它覆盖(相同的)现有的dict条目。split
垂直条处的新值。答案 1 :(得分:0)
如果内存不是限制问题,请创建一个集以跟踪发生的元素。这不会阻止您保持元素的顺序,因为您不会更改添加到列表的方式。
if element in set:
只需continue
。