[英]Python: checking “is in” for a specific sub element in a list
我有以下格式的元组列表:
list = [(var1, var2, var3). (var1, var2, var3), ...]
是否可以if var is in list
语句中构造if var is in list
仅检查var
是否明确位于var3
插槽之一中的if var is in list
语句中?
例如,给出以下列表:
list = [(1, 2, 3), (7, 8, 9)]
我希望能够以某种方式检查if var is in List
中,如果var == 3
则为true,但如果var == 2
则为true,因为它仅检查每个元组中的特定位置 。
您可以使用内置的any
:
>>> lst = [(1, 2, 3), (7, 8, 9)]
>>> any(v3==3 for *_, v3 in lst)
True
一旦找到匹配项,它就会短路,因此您无需遍历整个列表。
可以扩展到Python 2(因为扩展解压缩将不起作用):
any(v3==3 for _, _, v3 in lst)
您可以使用以下技巧来获取所有var1值的列表,所有var2值的列表以及所有var3值的列表:
var1s, var2s, var3s = zip(*list)
然后,您只需检查if var is in var3s
。
您可以使用:
if any(x[2] == var for x in l)
(ps:不要命名您的变量list
因为您覆盖了内置类型)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.