我如何将字典列表合并到像键组合的字典列表中

问题描述 投票:0回答:1

我想接受此输入:

mycounter = [{6: ['Credit card']}, {2: ['Debit card']}, {2: ['Check']}]                                                                                                                                                        
#[{6: ['Credit card']}, {2: ['Debit card']}, {2: ['Check']}]

并获得此所需的输出:

[{6: ['Credit card']}, {2: ['Debit card', 'Check']}]

我的尝试如下,但与所需的输出不匹配。感谢您的帮助。谢谢。

temp = list(zip([*map(lambda d: next(iter(d.keys())), mycounter)], [*map(lambda d: next(iter(d.values())), mycounter)]))  

c = collections.defaultdict(list)
for a,b in temp:
   c[a].extend(b)

final = [dict(c)]
# Close, but not quite the desired output since it's should be two dict objects, not one
# [{6: ['Credit card'], 2: ['Debit card', 'Check']}]

我在stackoverflow上的搜索找到了与提供None值相结合的解决方案,但与我所要求的完全不同。我的问题与之前的另一个类似问题的输入有所不同。

python dictionary defaultdict
1个回答
1
投票

一种选择是制作单个字典,然后在之后将其分成单个键值对:

© www.soinside.com 2019 - 2024. All rights reserved.