python会重新计算我的字符串吗? if if(名称中名称的foo.string中的名称):

时间:2015-10-24 09:14:10

标签: python-3.4

我想更新以下代码:

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会被多次询问?或者列表存放在内存中?

谢谢!

1 个答案:

答案 0 :(得分:0)

是。我认为foo.string每次都会计算,直到迭代满足True。所以你可以这样做

foo_string=foo.string
if any(name in foo_string for name in faa.names):