gpt4 book ai didi

python - 比较两个元组列表以创建包含最高值的新元组

转载 作者:行者123 更新时间:2023-12-01 04:52:37 25 4
gpt4 key购买 nike

我有以下代码,它将比较两个字典 bc 并从中创建第三个字典,名为 d,其中包含将 bc 进行比较并取最高的结果:

b = {1:0,2:0,3:0,4:0,5:0}
c = {1:1,4:4,5:5}

d={k:c[k] if k in c and c[k]>b[k] else v for k,v in b.items()}

但是,由于字典未排序,因此在比较它们之前,我必须使用以下语法将 bc 转换为元组,以便它们位于正确顺序:

b = sorted(b.iteritems()) 
c = sorted(c.iteritems())

这会产生以下输出:

b = [(1,0),(2,0),(3,0),(4,0),(5,0)]
c = [(1,1),(4,4),(5,5)]

但是我现在不确定如何比较这两个元组并生成如下所示的输出:

d = [(1,1),(2,0),(3,0),(4,4),(5,5)]

Python 2.7 中似乎没有可用的元组理解,除非我没有在正确的地方寻找答案。

有人可以帮忙吗?

最佳答案

您可以在上面的代码片段中添加一行(最后一行):

b = {1:0,2:0,3:0,4:0,5:0}
c = {1:1,4:4,5:5}

d={k:c[k] if k in c and c[k]>b[k] else v for k,v in b.items()}
print [(k, v) for k, v in d.items()] # [(1, 1), (2, 0), (3, 0), (4, 4), (5, 5)]

关于python - 比较两个元组列表以创建包含最高值的新元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28094517/

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