在使用enumerate的python中,多个变量如何在for循环中工作?
我想访问iterable对象的每个元素的索引。我在互联网上发现,可以使用枚举函数生成元组,元组的索引与各个元素相关联。但我有一个困惑,python如何知道我在for循环中选择的哪些变量被分配了索引,哪些变量被分配了元素的实际值 我知道这不仅仅是枚举函数的问题。它与for循环本身有关,我想了解它是如何工作的。下面是一个例子:在使用enumerate的python中,多个变量如何在for循环中工作?,python,python-3.x,Python,Python 3.x,我想访问iterable对象的每个元素的索引。我在互联网上发现,可以使用枚举函数生成元组,元组的索引与各个元素相关联。但我有一个困惑,python如何知道我在for循环中选择的哪些变量被分配了索引,哪些变量被分配了元素的实际值 我知道这不仅仅是枚举函数的问题。它与for循环本身有关,我想了解它是如何工作的。下面是一个例子: for idx, val in enumerate(items): print("index is:"+str(idx)+" and value is:"+str(v
for idx, val in enumerate(items):
print("index is:"+str(idx)+" and value is:"+str(val))
python如何决定“idx”获取tuple元素中两部分的索引值,“val”获取实际值部分
是不是类似于“var1,var2”中左边的那个获取索引
我们能否使“val”获得索引,“idx”获得实际值,而不改变它们在“for idx,val in enumerate(items)”中的出现顺序?其元组解包,基本形式是:
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)
其元组解包的基本形式是:
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)
查找元组解包。其原因枚举返回位置元组(元组中的第一个元素是索引,第二个元素是值)。因此,它将第一个值解压为
idx
,将第二个值解压为val
。交换变量,你会看到这一点。我们可以让“val”得到索引,“idx”得到实际值,而不改变它们在“for idx,val in enumerate(items)”中的出现顺序吗?当然可以,但为什么?编辑:这是一种方法,但完全没有用:对于idx,映射中的val(反转,枚举(项))
。不要这样做。如果希望val
获取索引,请更改变量的顺序。尝试在shell中执行a,b=(5,2)
。它的工作原理几乎相同same@pault我问只是想知道有没有办法。我明白,将两者转换显然是不明智的。谢谢你的帮助!!!查找元组解包。其原因枚举返回位置元组(元组中的第一个元素是索引,第二个元素是值)。因此,它将第一个值解压为idx
,将第二个值解压为val
。交换变量,你会看到这一点。我们可以让“val”得到索引,“idx”得到实际值,而不改变它们在“for idx,val in enumerate(items)”中的出现顺序吗?当然可以,但为什么?编辑:这是一种方法,但完全没有用:对于idx,映射中的val(反转,枚举(项))
。不要这样做。如果希望val
获取索引,请更改变量的顺序。尝试在shell中执行a,b=(5,2)
。它的工作原理几乎相同same@pault我问只是想知道有没有办法。我明白,将两者转换显然是不明智的。谢谢你的帮助!!!我最终陷入了语法上的悔恨是不是很糟糕?我是一个初学者。我最终在句法上后悔是不是很糟糕?我是初学者。