繁体   English   中英

Python:检查“在”列表中的特定子元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM