使用for循环在python中迭代2个列表中的变量

时间:2014-04-01 05:06:47

标签: python for-loop

在python中循环的后续情况会发生什么? i的值如何在每次迭代中改变。序列x和y是否组合形成单个序列?

for i in x, y:
    do_something(i)

我正在尝试的代码是这样的:

for sentence in snippet, phrase:
    result = sentence[:]

摘录和短语是其值将被列表替换的参数,即片段和短语都将是列表。

1 个答案:

答案 0 :(得分:2)

更新:好的,原来你问的是完全不同的事情。

您拥有的代码不会合并snippetphrase。在循环的第一次迭代中,snippet的副本将分配给result。在第二次迭代中,phrase的副本将分配给result,替换旧值。如果您要创建包含snippetphrase元素的列表,可以使用

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上调用一次。

如果要迭代xy对的相应元素,请使用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)

或如果xy都是列表或两个元组,

for i in x + y:
    do_something(i)