gpt4 book ai didi

python - 列出循环 : print second tuple element if condition 中的比较

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:56 26 4
gpt4 key购买 nike

我有以下列表和嵌套列表:

first_var = ["id1","id2","id3"]
second_var = [("id1","name1"),("id2","name2"),("id3","name3"),("id4","name4"),]

我想检查“second_var”中不存在于“first_var”中的每个第一个元素,并打印“second_var”中的第二个元素。

我的代码是:

for x in [x[0] for x in second_var]:
if x not in first_var:
print(...)

现在,如果我执行 print(x),它会打印:

id4

但我需要它来打印name4

我怎样才能做到这一点?

最佳答案

您的代码的问题是您没有迭代原始列表。您只是迭代列表中每个元组的第一个条目。

这是调整代码的方式:

first_var = ["id1","id2","id3"]
second_var = [("id1","name1"),("id2","name2"),("id3","name3"),("id4","name4"),]

for x in second_var:
if x[0] not in first_var:
print(x[1])

Pythonic 解决方案是将其转换为列表理解:

values = set(first_var)
res = [x[1] for x in second_var if x[0] not in values]

for item in res:
print(item)

或者功能版;不推荐,但另一种看待逻辑的方式:

from operator import itemgetter

values = set(first_var)
res = map(itemgetter(1), filter(lambda x: x[0] not in values, second_var))

关于python - 列出循环 : print second tuple element if condition 中的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50154268/

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