我注意到我可以做两件事,结果相同
foo = """
this is
a multi-line string.
"""
for line in foo.splitlines():
pass
for line in iter(foo.splitlines())
pass
有什么区别? 我应该选择哪一个?
答案 0 :(得分:4)
for
语句隐式调用您尝试迭代的对象上的iter()
。第二种形式只是多余的,两次做同样的工作没有任何好处。
在循环之前 可以存储iter()
迭代器:
foo_iter = iter(foo.splitlines())
for line in foo_iter:
next_line = next(foo_iter, '')
print(next_line.rstrip())
print(line.rstrip())