为什么这个Python"any"函数不返回True?

Jar*_*rad 1 python string any python-3.x

我不明白为什么任何()没有按照我期望的方式工作.下面,我想说,如果城市列表中的任何城市都在短语.split()中,则返回True.但是为什么当phrase.split()['replacement', 'windows', 'in', 'seattle', 'wa']和'seattle'显然在短语.split()列表中时它返回false ?

>>> cities = ['seattle', 'san antonio', 'denver']
>>> phrase = 'replacement windows in seattle wa'
>>> any(cities) in phrase.split()
False
>>> 'seattle' in phrase.split()
True
Run Code Online (Sandbox Code Playgroud)

lqh*_*gbl 5

Becuse any(cities)返回True,True不在列表中:

>>> cities = ['seattle', 'san antonio', 'denver']
>>> phrase = 'replacement windows in seattle wa'
>>> any(cities)
True
>>> True in phrase.split()
False
>>> any(cities) in phrase.split()
False
Run Code Online (Sandbox Code Playgroud)

您可以使用这种方式查看列表中是否有任何城市:

>>> [i for i in cities if i in phrase.split()]
['seattle']
>>> any(i for i in phrase.split() if i in cities)
True
Run Code Online (Sandbox Code Playgroud)

  • 你的'any`是倒退的 - 应该是`any(i in cities for i in phrase.split())` (2认同)