在Python中,原始词典列表如下:
orig = [{'team': 'team1', 'other': 'blah', 'abbrev': 't1'},
{'team': 'team2', 'other': 'blah', 'abbrev': 't2'},
{'team': 'team3', 'other': 'blah', 'abbrev': 't3'},
{'team': 'team1', 'other': 'blah', 'abbrev': 't1'},
{'team': 'team3', 'other': 'blah', 'abbrev': 't3'}]
需要获得一个新的dict列表,仅列出团队和简称但不同团队的列表,如下所示:
new = [{'team': 'team1', 'abbrev': 't1'},
{'team': 'team2', 'abbrev': 't2'},
{'team': 'team3', 'abbrev': 't3'}]
答案 0 :(得分:4)
dict键是唯一的,您可以利用它:
teamdict = dict([(data['team'], data) for data in t])
new = [{'team': team, 'abbrev': data['abbrev']} for (team, data) in teamdict.items()]
无法建议dict可能是您首选的数据结构。
哦,我不知道dict()
如何对列表中有几个相同的键的事实作出反应。在这种情况下,您可能必须构建字典而不是pythonesque:
teamdict={}
for data in t:
teamdict[data['team']] = data
隐式覆盖双重条目