Python 中的以下 for 循环会发生什么?每次迭代中 i 的值将如何变化。序列 x 和 y 是否组合形成单个序列?
for i in x, y:
do_something(i)
我正在尝试的代码如下:
for sentence in snippet, phrase:
result = sentence[:]
snippet和phrase是参数,其值将被列表替换,即snippet和phrase都将是列表。
最佳答案
更新:好吧,原来你问的是完全不同的东西。
您拥有的代码不会组合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)
关于python - 使用 for 循环在 python 中迭代 2 个列表中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22777259/