我有一个给定的有序字典和一个长度相同的给定列表。
given_dict = OrderedDict([('one', ['-', '-']), ('two', ['-', '-'])])
given_list = ['a', 'b']
现在我想从列表中压缩每个项目以及字典中的每个列表来获取:
new_dict = {'one': ['-', '-', 'a'], 'two': ['-', '-', 'b']}
有什么想法吗?
答案 0 :(得分:2)
这是一种方式:
In [13]: given_dict = OrderedDict([('one', ['-', '-']), ('two', ['-', '-'])])
In [14]: given_list = ['a', 'b']
In [15]: {k: di + [li] for ((k, di), li) in zip(given_dict.items(), given_list)}
Out[15]: {'one': ['-', '-', 'a'], 'two': ['-', '-', 'b']}
答案 1 :(得分:1)
对given_dict.items()
进行循环,并使用您的值添加given_list
的元素!
>>> given_dict = OrderedDict((j[0],j[1]+[given_list[i]]) for i,j in enumerate(given_dict.items()))
>>> given_dict
OrderedDict([('one', ['-', '-', 'a']), ('two', ['-', '-', 'b'])])
或者如果你想给dict,只需使用dict
代替``
>>> given_dict = dict((j[0],j[1]+[given_list[i]]) for i,j in enumerate(given_dict.items()))
>>> given_dict
{'two': ['-', '-', 'b'], 'one': ['-', '-', 'a']}
答案 2 :(得分:0)
你去:
>>> given_dict = collections.OrderedDict([('one', ['-', '-']), ('two', ['-', '-'])])
>>> given_list = ['a', 'b']
>>> {x[0]:x[1]+[given_list[i]] for i,x in enumerate(given_dict.items())}
{'one': ['-', '-', 'a'], 'two': ['-', '-', 'b']}