理解“for value1,value2 in xx”

时间:2013-08-29 07:20:55

标签: python for-loop

任何人都能解释一下以下含义吗?

for value1,value2 in List1:
           do_something()

我理解

for x1 in List2:
        do_something()

此处针对List2进行迭代,x1引用List2中的每个项目,但我不知道第一个项目的内容。

2 个答案:

答案 0 :(得分:4)

就像

一样
for x in seq:

迭代seq并将每个元素分配给x

for a, b in seq:

将迭代seq并将每个元素分配给a, b。它相当于

for x in seq:
    a, b = x

a, b = x做什么?好吧,这是序列拆包。 Python会尝试将x视为2元素序列,并将x的元素分配给ab

答案 1 :(得分:2)

第一个做sequence unpacking。也可以正常分配:

mylist = [1, 2, 3]
a, b, c = mylist

将列表元素分配给变量abc

同样适用于循环。

for x in iterable:
    a, b, c = x

可以缩短为

for a, b, c in iterable:
    ...

如果iterable是一个iterable,它只包含3个项目的元素(主要是元组),例如

[(1, 2, 3), (5, 4, 3), etc.]