3 回答

TA貢獻(xiàn)1786條經(jīng)驗 獲得超13個贊
使用列表理解:
dl = [{'name': 'clock'}, {'name': 'hours'}, {'name': 'nosotros'},
{'name': 'pinkfloyd'}, {'name': 'time'}, {'name': 'alarm clock', 'accuracy': 0.9196},
{'name': 'analogue', 'accuracy': 0.96998}, {'name': 'clock', 'accuracy': 0.99748}]
nl = [{'name': x['name']} for x in dl]
print(nl)

TA貢獻(xiàn)1877條經(jīng)驗 獲得超6個贊
如果您想以一般方式執(zhí)行此操作,您可以獲取字典中鍵的交集,然后根據(jù)這些鍵構(gòu)建一個新列表:
list_o_dicts = [
{'name': 'clock'}, {'name': 'hours'}, {'name': 'nosotros'},
{'name': 'pinkfloyd'}, {'name': 'time'}, {'name': 'alarm clock', 'accuracy': 0.9196},
{'name': 'analogue', 'accuracy': 0.96998}, {'name': 'clock', 'accuracy': 0.99748}
]
common_keys = set.intersection(*map(set, list_o_dicts)) # just {'name'}
output = [{k:d[k] for k in common_keys} for d in list_o_dicts]
輸出:
[{'name': 'clock'},
{'name': 'hours'},
{'name': 'nosotros'},
{'name': 'pinkfloyd'},
{'name': 'time'},
{'name': 'alarm clock'},
{'name': 'analogue'},
{'name': 'clock'}]
如果您有多個公用密鑰,這仍然有效:
list_o_dicts = [
{'name': 'alarm clock', 'accuracy': 0.9196},
{'name': 'analogue', 'accuracy': 0.96998},
{'name': 'clock', 'accuracy': 0.99748}
]
common_keys = set.intersection(*map(set, list_o_dicts)) # {'accuracy', 'name'}
[{k:d[k] for k in common_keys} for d in list_o_dicts]
出去:
[{'accuracy': 0.9196, 'name': 'alarm clock'},
{'accuracy': 0.96998, 'name': 'analogue'},
{'accuracy': 0.99748, 'name': 'clock'}]

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊
in_list = [{'name': 'clock'}, {'name': 'hours'}, {'name': 'nosotros'},
{'name': 'pinkfloyd'}, {'name': 'time'}, {'name': 'alarm clock', 'accuracy': 0.9196},
{'name': 'analogue', 'accuracy': 0.96998}, {'name': 'clock', 'accuracy': 0.99748}]
new_list = [{k: v for k,v in ele.items() if k == 'name'} for ele in in_list]
print(new_list)
輸出:
[{'name': 'clock'}, {'name': 'hours'}, {'name': 'nosotros'}, {'name': 'pinkfloyd'}, {'name': 'time'}, {'name': 'alarm clock'}, {'name': 'analogue'}, {'name': 'clock'}]
添加回答
舉報