在python中循环的后续情况会发生什么? i的值如何在每次迭代中改变。序列x和y是否组合形成单个序列?
for i in x, y:
do_something(i)
我正在尝试的代码是这样的:
for sentence in snippet, phrase:
result = sentence[:]
摘录和短语是其值将被列表替换的参数,即片段和短语都将是列表。
答案 0 :(得分:2)
更新:好的,原来你问的是完全不同的事情。
您拥有的代码不会合并snippet
和phrase
。在循环的第一次迭代中,snippet
的副本将分配给result
。在第二次迭代中,phrase
的副本将分配给result
,替换旧值。如果您要创建包含snippet
和phrase
元素的列表,可以使用
result = snippet + phrase
或者如果你真的想要使用循环,
result = []
for sentence in snippet, phrase:
result += sentence
x, y
是一个元组。换句话说,它解析如下:
for i in (x, y):
do_something(i)
这意味着do_something
将在x
上调用一次,在y
上调用一次。
如果要迭代x
和y
对的相应元素,请使用zip
:
for i in zip(x, y):
# or
# for x_element, y_element in zip(x, y):
do_something(i):
如果您想迭代x
的元素,那么y
的元素,您可以使用
import itertools
for i in itertools.chain(x, y):
do_something(i)
或如果x
和y
都是列表或两个元组,
for i in x + y:
do_something(i)