我想访问可迭代对象的每个元素的索引。我在互联网上发现可以使用枚举函数生成具有与各个元素相关联的索引的元组。但是我有一个困惑,python如何知道我在for循环中选择的哪个变量被分配了索引,哪个变量被分配了element的实际值?
我了解到枚举功能不是问题。它与for循环本身有关,我想了解它是如何工作的。这是一个示例:
for idx, val in enumerate(items):
print("index is:"+str(idx)+" and value is:"+str(val))
python如何确定“ idx”获取元组元素中两个部分的索引值,而“ val”获取实际值部分?
类似于“ var1,var2”左侧的那个获取索引吗?
我们可以做到这一点,以使“ val”获得索引而“ idx”获得实际值,而无需更改“对于idx,enumerate(items)中val的出现顺序”
答案 0 :(得分:2)
它的元组解包,基本形式是:
x, y = 2, 3
print(x, y) # Prints: 2 3
enumerate
调用只是将索引作为第一个元素,将值作为第二个元素:
a = ['a', 'b', 'c']
for index, val in enumerate(a):
print(index, val) # Outputs 0 a --> 1 b --> 2 c
命名是任意的:
a = ['a', 'b', 'c']
for b, c in enumerate(a):
print(b, c) # Outputs 0 a --> 1 b --> 2 c
您也可以通过以下方式看到此信息:
a = ['a', 'b', 'c']
for tup in enumerate(a):
print(tup) # Outputs: (0, a) --> (1, b) --> (2, c)