首页 > 解决方案 > 在循环中列出比较:如果条件打印第二个元组元素

问题描述

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

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

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

我的代码是:

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

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

id4

但我需要它来打印 name4

我怎样才能做到这一点?

标签: python

解决方案


您可以使用list comprehension功能。

ids = [tuple[1] for tuple in second_var if tuple[0] not in first_var]
print(ids)

输出

['name4']

上面的列表理解语句等价于:

>>> result = []
   for tuple in second_var:
      if tuple[0] not in first_var:
         result.append(tuple[1])

>>> result
['name4']

推荐阅读