python检查列表中是否有两个变量
我是Python新手,在重写旧Python脚本的过程中,我遇到了以下几行代码:python检查列表中是否有两个变量,python,Python,我是Python新手,在重写旧Python脚本的过程中,我遇到了以下几行代码: value1 = 'some val 1' value2 = 'some val 2' some_list = #list of values if (value1, value2) in some_list: 是否检查列表中是否有value1和value2 我在谷歌上搜索了如何做到这一点,答案显示了不同的方法,我没有看到任何使用上述代码的建议 这是在做其他事情吗?我应该保留还是更改它?您可以使用all: >
value1 = 'some val 1'
value2 = 'some val 2'
some_list = #list of values
if (value1, value2) in some_list:
是否检查列表中是否有value1
和value2
我在谷歌上搜索了如何做到这一点,答案显示了不同的方法,我没有看到任何使用上述代码的建议
这是在做其他事情吗?我应该保留还是更改它?您可以使用
all
:
>>> lst = [1, 2, 3, 4, 5]
>>> values = (1, 3)
>>> all(value in lst for value in values)
True
>>> values1 = (1, 6)
>>> all(value in lst for value in values1)
False
all
仅当所有值与条件匹配时才会计算为True
,在本例中为“在列表中”。这是一个非常有用的方法,因为一旦其中一个值与条件不匹配,它就会停止计算。这种技术称为
其行为类似于if and…:代码>从左到右逐个评估每个测试,并在其中一个测试未通过时返回False。(value1,value2)
是一个。检查该元组是否在列表中。例如:
mylist = [4, 5, (4, 5), 6]
(4, 5) in mylist
>True #because the tuple (4, 5) is in the list
(5, 6)
>False #because although 5 and 6 are both in the list, the tuple is not.
如果要查看元组中的每个项是否都在列表中,请使用@apero所述的:
mylist = [4, 5, 6, 7]
all(x in mylist for x in (4, 5, 6))
>True
all(x in mylist for x in (4, 5, 8))
>False
如果要检查列表中是否有任何值:
>>> all(x in some_list for x in [value1, value2])
现在要做的是使用集合检查元组是否在列表中另一个元组:
>>> to_find = {4, 5, 6}
>>> mylist = [4, 5, 6, 7]
>>> to_find.intersection(mylist) == to_find
True
>>> mylist = [5, 6, 7, 8]
>>> to_find.intersection(mylist) == to_find
False
否,这将检查列表中是否存在元组(值1,值2)
。而不是个人价值观本身。