组合具有相同键名的Python词典

wil*_*bev 3 python

我有两个单独的Python列表,在各自的字典中有共同的键名.调用的第二个列表recordList具有多个字典,其具有与我想要附加第一个列表相同的键名clientList.以下是示例列表:

clientList = [{'client1': ['c1','f1']}, {'client2': ['c2','f2']}]
recordList = [{'client1': {'rec_1':['t1','s1']}}, {'client1': {'rec_2':['t2','s2']}}]
Run Code Online (Sandbox Code Playgroud)

所以最终的结果将是这样的,所以记录现在在一个新的多个词典列表中clientList.

 clientList = [{'client1': [['c1','f1'], [{'rec_1':['t1','s1']},{'rec_2':['t2','s2']}]]}, {'client2': [['c2','f2']]}]
Run Code Online (Sandbox Code Playgroud)

看起来很简单,但我很难找到一种方法来迭代这两个字典使用变量来找到它们匹配的位置.

Sch*_*huh 7

如果您确定,两个词典中的键名相同:

    clientlist = dict([(k, [clientList[k], recordlist[k]]) for k in clientList])
Run Code Online (Sandbox Code Playgroud)

像这儿:

    >>> a = {1:1,2:2,3:3}
    >>> b = {1:11,2:12,3:13}
    >>> c = dict([(k,[a[k],b[k]]) for k in a])
    >>> c
    {1: [1, 11], 2: [2, 12], 3: [3, 13]}
Run Code Online (Sandbox Code Playgroud)

  • 一个小小的改进是使用字典理解:`{k: [a[k],b[k]] for k in a}` (2认同)