我有一个像这样设置的词典列表(但里面有~11000个词条,都有相同的键)
kept = [{'date': 20150409, 'vel': 62.1, 'H_beg': 110.1},
{'date': 20150409, 'vel': 39.5,....}]
现在,我有另一个列表kept2[]
,其中一些键应与kept[]
中的键值相匹配,但我想要一个额外的键'log_10_m'
如果列表中的字典kept[]
,'vel'
和'date'
的值相同,则添加到'H_beg'
中的每个字典。
这似乎难以捉摸,但是当我尝试打印出一个列表,显示'log_10_m'
中kept[]
的所有值时,该列表应该刚刚添加到其中的每个字典中,它说KeyError: 'log_10_m'
。
任何人都可以告诉我为什么以下代码不起作用,如果可能的话,更快的方法,因为每次尝试都需要几分钟。
kept = [{'date': 20150409, 'vel': 62.1, 'H_beg': 110.1},
{'date': 20150409, 'vel': 39.5,....}]
def compare():
for row in kept:
for row2 in kept2:
if (row['date'] == row2['date'] and
row['vel'] == row2['vel'] and
row['H_beg'] == row2['H_beg'] and
row['H_end'] == row2['H_end']):
row['log_10_m'] = row2['log_10_m']
break
else:
continue
mass = [row3['log_10_m'] for row3 in kept]
print '\n'
print 'mass in kept:'
print mass