gpt4 book ai didi

python - 函数生成字典列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:27 31 4
gpt4 key购买 nike

我有一个元组列表

[('color','blue'),('number',3),('place','usa'),('color','yellow'),('place','canada')...]

我想构建一个函数,返回一个字典列表

[{'color':blue, 'number':3, 'place':'usa'}, {'color':yellow, 'number':'', 'place':'camada'},...]

每当发现其中一个已经具有赋值的键时,该函数就必须创建一个新的字典

在上面的例子中,当它遍历元组列表时,在第一个元组中它会创建一个空字典,其中包含键和空值 ('') - 键总是相同的 - 并更新值基于元组键。然后当它到达一个元组时,该键已经为其分配了值('color','yellow'),它必须创建另一个字典并将颜色的值更新为黄色等等...

然后该函数将返回字典列表...

我可以为一个词典做这件事,但不知道如何让它创建一个新词典以及如何存储它们...

在此先感谢您的帮助!

最佳答案

我不完全确定我理解你想要的输出,但可能是类似的

def tups_to_dicts(kv_pairs):
# split into dictionaries
ds = []
for key, val in kv_pairs:
if not ds or key in ds[-1]:
ds.append({})
ds[-1][key] = val
# pad the empty values
all_seen_keys = set().union(*ds)
ds = [{key: d.get(key, '') for key in all_seen_keys} for d in ds]
return ds

会让你接近吗?它产生

>>> data = [('color','blue'),('number',3),('place','usa'),('color','yellow'),('place','canada'), ('color', 'orange'), ('sport', 'hockey')]
>>> dd = tups_to_dicts(data)
>>> for d in dd:
... print d
...
{'color': 'blue', 'sport': '', 'place': 'usa', 'number': 3}
{'color': 'yellow', 'sport': '', 'place': 'canada', 'number': ''}
{'color': 'orange', 'sport': 'hockey', 'place': '', 'number': ''}

关于python - 函数生成字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446933/

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