gpt4 book ai didi

Python-根据 2 个列表中的增量值添加到字典

转载 作者:太空狗 更新时间:2023-10-30 01:01:03 25 4
gpt4 key购买 nike

我创建了 2 个列表,并为每个项目添加了递增值。原因是每个列表中的值将在字典中连接在一起。然而,每个列表中的值不是 1 对 1 对。这就是为什么我添加递增值以帮助将每个键与其对应的值相关联。

这是我列表中的一些示例数据:

list_a = ['abc|1','bcd|2','cde|3']
list_b = ['1234|1','2345|2','3456|2','4567|2','5678|3']

因此,理想情况下,我要做的是遍历两个列表,然后根据递增值的配对生成一个字典。我猜测适用的值必须是一个列表?

下面是理想的输出:

my_dict = {'abc|1':'1234|1','bcd|2':['2345|2','3456|2','4567|2'],'cde|3':'5678|3'}    

任何帮助将不胜感激,提前致谢:)

最佳答案

list_a = ['abc|1','bcd|2','cde|3']
list_b = ['1234|1','2345|2','3456|2','4567|2','5678|3']

tmp = {k.split('|')[1]: (k, []) for k in list_a}
for v in list_b:
tmp[v.split('|')[1]][1].append(v)
my_dict = dict(tmp.values())

这与您发布的目标接近,但我认为它实际上更好。

goal: {'abc|1':  '1234|1',  'bcd|2': ['2345|2', '3456|2', '4567|2'], 'cde|3':  '5678|3' }
mine: {'abc|1': ['1234|1'], 'bcd|2': ['2345|2', '3456|2', '4567|2'], 'cde|3': ['5678|3']}

您可以看到我们的区别仅在于将单例(我)或不(您)列入名单。我认为我的方法更好的原因是,如果所有值都是列表,任何代码使用这个结果可能会更容易,所以它不需要处理两个单个字符串和字符串列表。就像我更容易生成列表一样。

但如果您仍然喜欢您的方式,请将我上面的最后一行更改为:

my_dict = {k: v if len(v) > 1 else v[0] for k, v in tmp.values()}

关于Python-根据 2 个列表中的增量值添加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30347026/

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