簡體   English   中英

將一個字典列表的鍵和值添加到另一個字典列表

[英]Add key and value of one list of dictionaries to another list of dictionaries

我有兩個 Python 字典列表。

一個是具有多個 ID 和更新日期的密鑰列表。

其他列表是關於人員的,在人員列表中有與密鑰列表中的 p_id 對應的 person_id。 我想將密鑰列表中的 fam_id 添加到人字典中。

keylist = [{'p_id':'001','fam_id':'FAM98','update':'2021-07-29'},
           {'p_id':'002','fam_id':'FAM1978','update':'2021-07-29'},
           {'p_id':'003','fam_id':'FAM1978','update':'2021-07-29'}]

persons = [{'person_id':'001','dob':'01-20-1997','mom_id':'34','color':'brown'},
           {'person_id':'002','dob':'12-05-2001','mom_id':'003', 'color':'black'},
           {'person_id':'003','dob':'01-02-1977','mom_id':'320', 'color':'brown'}]

我想得到:

persons = [{'person_id':'001','dob':'01-20-1997','mom_id':'34','color':'brown','fam_id':'FAM98'},
           {'person_id':'002','dob':'12-05-2001','mom_id':'003','color':'black','fam_id':'FAM1978'},
           {'person_id':'003','dob':'01-02-1977','mom_id':'320','color':'brown','fam_id':'FAM1978'}]

我不知道如何得到這個。 我嘗試的是這個(但我不知道如何從密鑰列表中獲取 lcreate ):

lcreate = {'001': 'FAM98', '002': 'FAM1978', '003': 'FAM1978'}
for dic in persons: dic["fam_id"] = lcreate[dic["person_id"]]

如何從 dict (keylist) 列表中獲取一個 dict(lcreate)?

您可以遍歷兩個列表,並在這些鍵匹配時更新persons詞典。

keylist=[{'p_id':'001','fam_id':'FAM98','update':'2021-07-29'},{'p_id':'002','fam_id':'FAM1978','update':'2021-07-29'},{'p_id':'003','fam_id':'FAM1978','update':'2021-07-29'}]
persons=[{'person_id':'001','dob':'01-20-1997','mom_id':'34', 'color':'brown'},{'person_id':'002','dob':'12-05-2001','mom_id':'003', 'color':'black'},{'person_id':'003','dob':'01-02-1977','mom_id':'320', 'color':'brown'}]
for x in persons:
    for y in keylist:
        if x['person_id'] == y['p_id']:
            x['fam_id'] = y['fam_id']

結果

>>> persons
[{'person_id': '001', 'dob': '01-20-1997', 'mom_id': '34', 'color': 'brown', 'fam_id': 'FAM98'},
 {'person_id': '002', 'dob': '12-05-2001', 'mom_id': '003', 'color': 'black', 'fam_id': 'FAM1978'},
 {'person_id': '003', 'dob': '01-02-1977', 'mom_id': '320', 'color': 'brown', 'fam_id': 'FAM1978'}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM