python - 在循环中列出比较:如果条件打印第二个元组元素
问题描述
我有以下列表和嵌套列表:
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
我怎样才能做到这一点?
解决方案
您可以使用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']
推荐阅读
- regex - Htacces 重写转换为 nginx
- java - 像这样重新分配反应堆 Publisher Mono 有什么问题吗?
- symfony - Symfony UniqueEntity 关系不抛出断言,抛出重复键错误
- devops - 使用 github-actions 时出现色差部署错误
- python - python中类中的多处理池将数组更改为列表
- node.js - 如何在画布 js 中叠加噪音?
- kubernetes - 如何使用 Operator SDK 正确垃圾收集对象?
- spring - Jetty 将 Spring bean 注入登录模块
- javascript - Oracle APEX 分面搜索在更改时无法很好地显示 BPMN 图
- c# - 每次重用后如何处理 Image 对象