gpt4 book ai didi

python - 如何将列表列表中的一个值与 Python 中列表列表中的另一个值进行比较

转载 作者:行者123 更新时间:2023-11-28 22:50:23 25 4
gpt4 key购买 nike

我是 python 的新手,但我正在尝试比较 Python 2.7 中的两个列表列表。

testlist = [['asd', 7],['bla', 5],['hi', 3]]
reflist = [[1, 576 ],[2, 832],[3, 123],[4, 412],[5, 948],[6, 14],[7, 2],[8, 76],[9, 79]]

所以期望的输出是这样的:

testlist = [['asd', 7, 2],['bla', 5, 948],['hi', 3, 123]]

仅当第一个值与测试列表中每个列表的第二个值匹配时,才在 reflist 中附加每个列表的第二个值……也许是这样的?

for l in testlist:
if l[1] in b[0] for b in reflist:
l.append(b[1])

非常感谢!

最佳答案

您可以使用字典推导将reflist 转换为字典,这样查找会更容易、更快速,就像这样

d = {item1:item2 for item1, item2 in reflist}
print [item + [d.get(item[1])] for item in testlist]
# [['asd', 7, 2], ['bla', 5, 948], ['hi', 3, 123]]

更简单的,可以用dict函数构造字典,像这样

d = dict(reflist)

如果你想使用基本但低效的方法,那么你可以这样做

for item in testlist:
for number1, number2 in reflist:
if number1 == item[1]:
item.append(number2)
break

print testlist
# [['asd', 7, 2], ['bla', 5, 948], ['hi', 3, 123]]

这会就地更改列表。如果你不想那样做,你可以这样做

result = []
for item in testlist:
temp = item[:]
for number1, number2 in reflist:
if number1 == item[1]:
temp.append(number2)
result.append(temp)
break
else:
result.append(temp)

print result
# [['asd', 7, 2], ['bla', 5, 948], ['hi', 3, 123]]

关于python - 如何将列表列表中的一个值与 Python 中列表列表中的另一个值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22711944/

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