Python any()方法结果

Python any()方法结果,python,Python,我想知道下面的结果会是怎样的 >>> x=['0'] >>> valid_diff=['0','1','2','3'] >>> result =any(x for each in x if x in valid_diff) >>> result False 我希望结果是真的,因为第一个元素本身也是真的 任何想法,我肯定我这里遗漏了一些东西。您的变量名输入错误, 您应该检查是否每个都有效不如果x在有效和每个都不每个都不x的

我想知道下面的结果会是怎样的

>>> x=['0']
>>> valid_diff=['0','1','2','3']
>>> result =any(x for each in x if x in valid_diff)
>>> result 
False
我希望结果是真的,因为第一个元素本身也是真的


任何想法,我肯定我这里遗漏了一些东西。

您的变量名输入错误, 您应该检查
是否每个都有效
如果x在有效
每个都不
每个都不
x的语法是否正确:

>>> result =any(each for each in x if each in valid_diff)

除了输入错误之外,我认为没有必要在这里存储
每个
,只需使用:

#returns True if any item in x is found in valid_diff
>>> any(each in valid_diff for each in x)
True
或者严格按照你想做的去做,然后用这个:

any(each in valid_diff and each for each in x)
#will return `True` only if any item found in valid_diff is a Truth value as well.

这是不正确的:您从未使用过每个,因此值是什么并不重要。
对于每个
?这真的是你的意思吗?另外,如果你要这样做,你可能想把
valid\u diff
变成
集合。这将把它从一个O(N*M)操作变成一个O(N)操作(其中N=len(x),M=len(valid_diff)),在阅读了所有的答案并感到非常困惑之后,我认为您应该立即重命名
每个
变量。。。甚至这个注释也让人困惑……或者说,为了不那么让人困惑,
result=any(如果xitem有效,那么x中的xitem代表xitem)
。我认为OP是一种错觉,认为每个
都意味着一些特别的东西,对吧。尽管如此,我只是想根据他使用的变量来纠正他的语法。如果第一个
每个
在valid_diff
中是
,则会给出不同的结果。我不关心OP的样本数据,老实说,我怀疑它对大多数问题都很重要,这样做是有意义的,但意识到这一点也无妨。@delnan很好的一点,我认为如果我们坚持OP当时尝试的
any(每个都在有效的_diff中,每个都在x中)
似乎是正确的。若要对此进行扩展:
若有效
中的x在列表中查找
['0']
,而不是
'0'
,则显然不会返回任何内容]