我不明白为什么 any() 没有按我期望的方式工作。下面,我想说,如果cities列表中的任何一个城市在phrase.split()中,则返回True。但是当 phrase.split() 是 ['replacement', 'windows', 'in', 'seattle', 'wa'] 并且 'seattle' 显然在短语中时,为什么它会返回 false .split() 列表?
>>> cities = ['seattle', 'san antonio', 'denver']
>>> phrase = 'replacement windows in seattle wa'
>>> any(cities) in phrase.split()
False
>>> 'seattle' in phrase.split()
True
请您参考如下方法:
因为 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
您可以使用这种方式查看列表中是否有任何城市:
>>> [i for i in cities if i in phrase.split()]
['seattle']
>>> any(i for i in phrase.split() if i in cities)
True
