我想更新以下代码:
foo_string=foo.string
for name in faa.names:
if name in foo_string:
为:
if any(name in foo.string for name in faa.names):
但我想确保在每次迭代时都不会重新计算foo.string
。
我看了python documentation,它说这是等价的:
def any(iterable):
for element in iterable:
if element:
return True
return False
但它对我没有多大帮助,而且我找不到C代码。也,
faa.names
会被多次询问?或者列表存放在内存中?
谢谢!
答案 0 :(得分:0)
是。我认为foo.string
每次都会计算,直到迭代满足True
。所以你可以这样做
foo_string=foo.string
if any(name in foo_string for name in faa.names):