如何将多个值添加到键字典
How do I add multiple values to a key dictionary
我有一个环法自行车赛文件,我想将年份作为键,将其他信息作为值。
部分文件如下所示
Year,Cyclist,Time,Distance,Hours,Minutes,Seconds,Team,CyclistNumber,TotalSeconds,Gap,Stages
1903,MAURICE GARIN,94h 33' 14'',2428,94,33,14,TDF 1903 ***,1,340394,-,6
1903,LUCIEN POTHIER,97h 32' 35'',2428,97,32,35,TDF 1903 ***,37,351155,+ 02h 59' 21'',6
1903,FERNAND AUGEREAU,99h 02' 38'',2428,99,2,38,TDF 1903 ***,39,356558,+ 04h 29' 24'',6
1903,RODOLPHE MULLER,99h 12' 44'',2428,99,12,44,TDF 1903 ***,33,357164,+ 04h 39' 30'',6
1903,JEAN-BAPTISTE FISCHER,99h 41' 58'',2428,99,41,58,TDF 1903 ***,12,358918,+ 05h 08' 44'',6
1903,ARSENE MILLOCHEAU,155h 30' 44'',2428,155,30,44,TDF 1903 ***,67,559844,+ 60h 57' 30'',6
并且我制作了以下字典
with open("tour-de-france.csv") as file:
reader = csv.reader(file)
no_header = next(reader, None)
new_dct = {}
for x in reader:
new_dct[x[0]] = x[1:]
print(new_dct)
部分输出如下所示:
{'1903': ['ARSENE MILLOCHEAU', "155h 30' 44''", '2428', '155', '30', '44', 'TDF 1903 ***', '67', '559844', "+ 60h 57' 30''", '6']
输出只有1903年的最后一个人作为值,但是是否也可以将1903年的每一个人作为值?
你可以使用列表的列表作为值
即
with open("tour-de-france.csv") as file:
reader = csv.reader(file)
no_header = next(reader, None)
new_dct = {}
for x in reader:
new_dict.setdefault(x[0], [])
new_dct[x[0]].append(x[1:])
print(new_dct)
这将导致类似这样的结果
{'1903': [['MAURICE GARIN', ...], ['LUCIEN POTHIER', ...], ['FERNAND AUGEREAU', ...], ['RODOLPHE MULLER', ...], ['JEAN-BAPTISTE FISCHER', ...] ['ARSENE MILLOCHEAU', "155h 30' 44''", '2428', '155', '30', '44', 'TDF 1903 ***', '67', '559844', "+ 60h 57' 30''", '6']]
我有一个环法自行车赛文件,我想将年份作为键,将其他信息作为值。
部分文件如下所示
Year,Cyclist,Time,Distance,Hours,Minutes,Seconds,Team,CyclistNumber,TotalSeconds,Gap,Stages
1903,MAURICE GARIN,94h 33' 14'',2428,94,33,14,TDF 1903 ***,1,340394,-,6
1903,LUCIEN POTHIER,97h 32' 35'',2428,97,32,35,TDF 1903 ***,37,351155,+ 02h 59' 21'',6
1903,FERNAND AUGEREAU,99h 02' 38'',2428,99,2,38,TDF 1903 ***,39,356558,+ 04h 29' 24'',6
1903,RODOLPHE MULLER,99h 12' 44'',2428,99,12,44,TDF 1903 ***,33,357164,+ 04h 39' 30'',6
1903,JEAN-BAPTISTE FISCHER,99h 41' 58'',2428,99,41,58,TDF 1903 ***,12,358918,+ 05h 08' 44'',6
1903,ARSENE MILLOCHEAU,155h 30' 44'',2428,155,30,44,TDF 1903 ***,67,559844,+ 60h 57' 30'',6
并且我制作了以下字典
with open("tour-de-france.csv") as file:
reader = csv.reader(file)
no_header = next(reader, None)
new_dct = {}
for x in reader:
new_dct[x[0]] = x[1:]
print(new_dct)
部分输出如下所示:
{'1903': ['ARSENE MILLOCHEAU', "155h 30' 44''", '2428', '155', '30', '44', 'TDF 1903 ***', '67', '559844', "+ 60h 57' 30''", '6']
输出只有1903年的最后一个人作为值,但是是否也可以将1903年的每一个人作为值?
你可以使用列表的列表作为值 即
with open("tour-de-france.csv") as file:
reader = csv.reader(file)
no_header = next(reader, None)
new_dct = {}
for x in reader:
new_dict.setdefault(x[0], [])
new_dct[x[0]].append(x[1:])
print(new_dct)
这将导致类似这样的结果
{'1903': [['MAURICE GARIN', ...], ['LUCIEN POTHIER', ...], ['FERNAND AUGEREAU', ...], ['RODOLPHE MULLER', ...], ['JEAN-BAPTISTE FISCHER', ...] ['ARSENE MILLOCHEAU', "155h 30' 44''", '2428', '155', '30', '44', 'TDF 1903 ***', '67', '559844', "+ 60h 57' 30''", '6']]