0

谁能解释一下下面的意思?

for value1,value2 in List1:
           do_something()

我明白那个

for x1 in List2:
        do_something()

这里 for 迭代List2x1引用 中的每个项目List2,但我不明白第一个项目的作用。

4

2 回答 2

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 元素序列并将元素分配xab

于 2013-08-29T07:48:16.043 回答
2

第一个做序列解包。也可以进行正常分配:

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

将列表的元素分配给变量a和。bc

在循环中也同样有效。

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

可以缩短为

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

如果 iterable 是一个仅包含 3 个项目的元素(主要是元组)的可迭代对象,例如

[(1, 2, 3), (5, 4, 3), etc.]
于 2013-08-29T07:51:22.757 回答