gpt4 book ai didi

python-3.x - python : append to value-list using dictionary-comprehension

转载 作者:行者123 更新时间:2023-12-04 03:42:27 25 4
gpt4 key购买 nike

我有以下场景 - 考虑如下字典列表( 输入 ):

data = [{'key1' : 'k1v1', 'key2': 'k2v1'}, {'key1': 'k1v2', 'key2': 'k2v2'}, 
{'key1': 'k1v3', 'key2': 'k2v3'}, {'key1': 'k1v4', 'key2': 'k2v4'}]
可以看出,字典中的键是相同的。所以我想要做的是以下( 所需的输出 ):
{'key1': ['k1v1', 'k1v2', 'k1v3', 'k1v4'], 'key2': ['k2v1', 'k2v2', 'k2v3', 'k2v4']}
为了实现这一点,我可以使用以下简单的直接嵌套循环:
data_dict = dict()
for d in data:
for k, v in d.items():
if k in data_dict:
data_dict[k].append(v)
else:
data_dict[k] = [v]
问题 : 我们可以使用字典理解来做到这一点吗?换句话说,我们可以在字典理解中附加到现有的值列表吗?

最佳答案

这是我能做的最好的事情:

d = {}
for k in data[0].keys():
d[k] = list(d[k] for d in ds)
这是一个更接近字典理解的解决方案
data_dict = {
k: [d.get(k) for d in data]
for k in set().union(*data)
}
以下语法产生具有最快计时的代码:
data_dict = {k: [dt[k] for dt in data] for k in data[0].keys()}

# Timing:
# 1.08 µs ± 18.2 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

关于python-3.x - python : append to value-list using dictionary-comprehension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65731601/

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