gpt4 book ai didi

list - 确保列表中的所有字典都具有相同的键

转载 作者:行者123 更新时间:2023-11-28 19:58:20 25 4
gpt4 key购买 nike

我有一个字典列表,比如

[{'x': 42}, {'x': 23, 'y': 5}]

并希望确保所有字典都具有相同的键,如果键不存在于原始字典中,则值为 None。所以上面的列表应该变成

[{'x': 42, 'y': None}, {'x': 23, 'y': 5}]

执行此操作的最漂亮和 pythonic 方法是什么?当前方法:

keys = reduce(lambda k, l: k.union(set(l)), [d.keys() for d in my_list], set())
new_list = [dict.fromkeys(keys, None) for i in xrange(len(my_list))]
for i, l in enumerate(my_list):
new_list[i].update(l)

但尤其是前两行似乎有点笨拙。想法?

最佳答案

>>> from itertools import chain 
>>> l = [{'x': 42}, {'x': 23, 'y': 5}]
>>> all_keys = set(chain.from_iterable(l))
>>> for d in l:
d.update((k,None) for k in all_keys-d.viewkeys())


>>> l
[{'y': None, 'x': 42}, {'y': 5, 'x': 23}]

关于list - 确保列表中的所有字典都具有相同的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10482439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com