4 回答

TA貢獻(xiàn)1862條經(jīng)驗 獲得超7個贊
您可以嘗試列表理解:
v3=[dc for val in v2 for dc in v1 if val==dc['Key']]
輸出:
v3 [{'Key': 'Name', 'Value': 'Sam'}, {'Key': 'Product', 'Value': 'cookies'}, {'Key': 'State', 'Value': 'UP'}, {'Key': 'Name', 'Value': 'Sam'}]

TA貢獻(xiàn)1802條經(jīng)驗 獲得超6個贊
對于預(yù)期的輸出,您需要反轉(zhuǎn)循環(huán)順序,首先循環(huán) v2 列表,然后檢查該鍵是否存在于 V1 中。
for v in v2:
for d in v1:
if d["Key"] == v:
v3.append(d)

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊
列表理解可能會有所幫助。
嘗試這個:
[i for i in v1 if i['Key'] in v2]
結(jié)果:
[{'Key': 'State', 'Value': 'UP'}, {'Key': 'Name', 'Value': 'Sam'}, {'Key': 'Product', 'Value': 'cookies'}]
說到預(yù)期的 v3,我不確定為什么{'Key': 'Name', 'Value': 'Sam'}
當(dāng)該元素在 v1 中只出現(xiàn)一次時出現(xiàn)兩次。也許錯別字?
已編輯
[i for j in v2 for i in v1 if i['Key'] == j]
結(jié)果:
[{'Key': 'Name', 'Value': 'Sam'}, {'Key': 'Product', 'Value': 'cookies'}, {'Key': 'State', 'Value': 'UP'}, {'Key': 'Name', 'Value': 'Sam'}]

TA貢獻(xiàn)1757條經(jīng)驗 獲得超8個贊
嘗試像下面這樣重構(gòu)你的第一個字典:
v1 = {'State': 'UP',
'city': 'bihar',
'Name': 'Sam',
'Product': 'cookies',
'id': '23',
'email': 'enim@gmail.com'}
v2 = ['Name', 'Product', 'State','Name']
v3 = dict()
for x in v2:
if x in v1:
print({x: v1.get(x)})
v3.update({x: v1.get(x)})
update 添加記錄或在鍵可用時更新記錄,{} 是另一種構(gòu)造字典的方式
來源: https: //docs.python.org/3/tutorial/datastructures.html
添加回答
舉報