Skip to main content
 首页 » 编程设计

python之循环python的多变量

2025年05月04日35虾米哥

我知道你可以嵌套 for 循环,例如:

for ch in a: 
    for ch2 in ch: 
        print(ch2) 

但是,我见过这样的循环:

for ch, ch2 in a: 
    # blah blah 

这两个循环是等价的吗?还是第二个循环做的事情与第一个不同?

请您参考如下方法:

不,他们不是。

第二个是multiple assignment的例子.如果您分配给一个元组,Python 会将可迭代对象的值解压缩为您提供的名称。

第二个循环与此相当:

for seq in a: 
    ch = seq[0] 
    ch2 = seq[1] 
    # blah blah 

正如@Kasramvd 在对您的问题的评论中指出的那样,这仅在 a 是具有正确项目数的序列时才有效。否则,Python 将引发 ValueError。


编辑以解决 dict 迭代(如评论中所述):

当您使用普通的 for x in y 语法遍历 Python dict 时,x 是键 与每次迭代相关。

for x in y:   # y is a dict 
    y[x]      # this retrieves the value because x has the key 

你说的循环类型是这样实现的:

for key, val in y.items(): 
    print(key, 'is the key') 
    print('y[key] is', val) 

这仍然是与上述相同的拆包,因为 dict.items 为您提供了一个 元组列表 对应于 dict内容。即:

d = {'a': 1, 'b': 2} 
print(d.items())    # [('a', 1), ('b', 2)]