gpt4 book ai didi

python - 如何映射两个字典中的相同项目并生成其对应键的值列表

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

我的目标是将小字典映射到大字典,并返回大字典中的值列表,该列表包含与小字典对应的键。

x={'red':0.25, 'yellow':0.05, 'pink':0.35, 'brown':0.22, 'blue':0.13}
y={'red':2, 'blue':3, 'yellow':1}

我的代码不断给我一个大型字典的完整值列表。

for b in x.keys():
if b in y.keys():
k=y.values()
print k

output: [0.35, 0.22, 0.13, 0.05, 0.25]

Desired output:
[0.25,0.13,0.05]

有什么建议吗?谢谢。

最佳答案

是这样的吗?我认为顺序无关紧要,因为这些是字典。此外,假设由于您似乎在遍历 x.keys(),那么 y 中可能有一些值在 x< 中不存在 并且您不想映射它们。

>>> x={'red':0.25, 'yellow':0.05, 'pink':0.35, 'brown':0.22, 'blue':0.13}
>>> y={'red':2, 'blue':3, 'yellow':1}
>>> [val for elem, val in x.items() if elem in y]
[0.13, 0.05, 0.25]

如果 y 中没有不在 x 中的值,那么您可以简单地遍历 y 字典。

>>> [x[key] for key in y]
[0.13, 0.05, 0.25]

P.S. - 您的代码中的问题是,每次找到匹配项时,您都会将 y.values() 的整个列表分配给 k,因此以完整的值列表结束。你可以修改你的代码看起来像这样

>>> k = []
>>> for b in x.keys():
if b in y.keys():
k.append(x[b])


>>> k
[0.13, 0.05, 0.25]

不过,遍历字典会得到类似的结果,如下所示

>>> for b in x:
if b in y:
k.append(x[b])


>>> k
[0.13, 0.05, 0.25]

关于python - 如何映射两个字典中的相同项目并生成其对应键的值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18417112/

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