我有一個未知數量的產品結果列表作爲字典條目,它們都具有相同的密鑰。我想要生成出現在所有舊列表中的新產品列表。在n個列表中創建一個共同的字典列表?
'所有城市都有哪些產品?'
給出:
list1 = [{'id': 1, 'name': 'bat', 'price': 20.00}, {'id': 2, 'name': 'ball', 'price': 12.00}, {'id': 3, 'name': 'brick', 'price': 19.00}]
list2 = [{'id': 1, 'name': 'bat', 'price': 18.00}, {'id': 3, 'name': 'brick', 'price': 11.00}, {'id': 2, 'name': 'ball', 'price': 17.00}]
list3 = [{'id': 1, 'name': 'bat', 'price': 16.00}, {'id': 4, 'name': 'boat', 'price': 10.00}, {'id': 3, 'name': 'brick', 'price': 15.00}]
list4 = [{'id': 1, 'name': 'bat', 'price': 14.00}, {'id': 2, 'name': 'ball', 'price': 9.00}, {'id': 3, 'name': 'brick', 'price': 13.00}]
list...
我想類型的字典列表中的「ID」在所有的舊名單的存在:
result_list = [{'id': 1, 'name': 'bat}, {'id': 3, 'name': 'brick}]
而這對於給定的恆定值'id'可以被丟棄,但是給定'id'的值必須在結果列表中。
如果我知道有多少名單我有,我可以這樣做:
results_list = []
for dict in list1:
if any(dict['id'] == d['id'] for d in list2):
if any(dict['id'] == d['id'] for d in list3):
if any(dict['id'] == d['id'] for d in list4):
results_list.append(dict)
我怎樣才能做到這一點,如果我不知道有多少名單我有多少?
我已更新我的解決方案以符合您更新的問題。 – senshin