添加具有多个循环变量的索引变量Python
Add index variable with more than one loop variable Python
当运行单变量循环时,添加索引变量很容易:
a = ( (2,3), (7,9) )
for i,v in enumerate( a ):
print( v )
print( i )
产量:
(2, 3)
0
(7, 9)
1
尝试生成一个双变量循环也很有效:
for c,v in enumerate( a ):
print( c )
print( v )
产量:
0
(2, 3)
1
(7, 9)
但是,通过枚举为 3 个循环变量添加索引不起作用:
for i,c,v in enumerate( a ):
print( c )
产量:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 3, got 2)
enumerate
returns 一个有对的迭代器,从不三倍。对于这个特定的输入数据,这种对的第二个成员是一对本身。于是就有了嵌套。您应该使用相同的嵌套解压该结构:
for i, (c, v) in enumerate( a ):
print(f"i={i} c={c} v={v}")
当运行单变量循环时,添加索引变量很容易:
a = ( (2,3), (7,9) )
for i,v in enumerate( a ):
print( v )
print( i )
产量:
(2, 3)
0
(7, 9)
1
尝试生成一个双变量循环也很有效:
for c,v in enumerate( a ):
print( c )
print( v )
产量:
0
(2, 3)
1
(7, 9)
但是,通过枚举为 3 个循环变量添加索引不起作用:
for i,c,v in enumerate( a ):
print( c )
产量:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 3, got 2)
enumerate
returns 一个有对的迭代器,从不三倍。对于这个特定的输入数据,这种对的第二个成员是一对本身。于是就有了嵌套。您应该使用相同的嵌套解压该结构:
for i, (c, v) in enumerate( a ):
print(f"i={i} c={c} v={v}")