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'
,则显然不会返回任何内容]