3

我想知道以下结果将如何产生 True?

>>> x=['0']
>>> valid_diff=['0','1','2','3']
>>> result =any(x for each in x if x in valid_diff)
>>> result 
False

我希望结果为 True,因为第一个元素本身将为 True。

任何想法,我确定我在这里遗漏了一些东西..

4

3 回答 3

6

你的变量名打错了,你应该检查if each in valid_diffnotif x in valid_diffeach for eachnotx for each

于 2013-05-20T13:41:18.427 回答
3

除了错字,我认为这里不需要存储each,只需使用:

#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.

真值测试

于 2013-05-20T13:45:00.693 回答
0

正确的语法:

>>> result =any(each for each in x if each in valid_diff)
于 2013-05-20T13:42:24.333 回答