gpt4 book ai didi

python - 如何比较具有相同字母表的两个列表列表并获取最大数字并将它们附加到另一个列表?

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:43 25 4
gpt4 key购买 nike

我得到了这两个列表:

A=[[12, 'a'], [0, 'c'], [2, 'w'], [3, 'Q'], [0, 'a'], [0, 'c'], [0, 'w'], [5, 'Q']]
B=[[12, 'a'], [0, 'c'], [15, 'w'], [3, 'Q']]

我想按字母比较这两个列表,并将最大数字的列表附加到新列表 C 中?

C=[[12, 'a'], [0, 'c'], [15, 'w'], [3, 'Q'],[12, 'a'], [0, 'c'], [15, 'w'], [5, 'Q']]

编辑:我得到了这个代码,但它只输出

C=[[12, 'a'], [0, 'c'], [15, 'w'], [3, 'Q']]?

C = []
for g1, g2 in zip(a,b):
line = []
for e1, e2 in zip(g1, g2):
line.append(max(e1, e2))
C.append(line)

最佳答案

首先创建一个字典,保存 B 中的最大值,并注意确保处理列表中任何可能的重复项。然后使用基于 B 中找到的最大值和当前值的列表推导式创建 C:

A = [[12, 'a'], [0, 'c'], [2, 'w'], [3, 'Q'], [0, 'a'], [0, 'c'], [0, 'w'], [5, 'Q']]
B = [[12, 'a'], [0, 'c'], [15, 'w'], [3, 'Q']]

max_values = {}

for count, value in B:
try:
max_values[value] = max(max_values[value], count)
except KeyError:
max_values[value] = count

C = [[max(count, max_values[value]), value] for count, value in A]

print C

给你:

[[12, 'a'], [0, 'c'], [15, 'w'], [3, 'Q'], [12, 'a'], [0, 'c'], [15, 'w'], [5, 'Q']]

在您给出的示例中,B 包含唯一值,但如果同一字母碰巧有多个条目,此解决方案将确保使用最大值。

关于python - 如何比较具有相同字母表的两个列表列表并获取最大数字并将它们附加到另一个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561600/

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