我想知道,如果.upper这个循环调用多次“你好”()(或任何其他方法/功能),而迭代:
for i in "hello".upper():
#DO SOMETHING
考虑到“你好”并不在循环改变,这会是更好的性能明智?:
string = "hello".upper()
for i in string:
#DO SOMETHING
环路目标只计算一次,获得一个迭代之后。然后,对迭代next()
被称为该循环的每次迭代。
你可以认为for a in b
为:
_iter = iter(b) # Evaluates b only ONCE
while True:
try:
a = next(_iter)
except StopIteration:
break
# loop body ...
该参数for语句计算一次。所以它不会被执行多次。