Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用enumerate的python中,多个变量如何在for循环中工作?_Python_Python 3.x - Fatal编程技术网

在使用enumerate的python中,多个变量如何在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

我想访问iterable对象的每个元素的索引。我在互联网上发现,可以使用枚举函数生成元组,元组的索引与各个元素相关联。但我有一个困惑,python如何知道我在for循环中选择的哪些变量被分配了索引,哪些变量被分配了元素的实际值

我知道这不仅仅是枚举函数的问题。它与for循环本身有关,我想了解它是如何工作的。下面是一个例子:

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我问只是想知道有没有办法。我明白,将两者转换显然是不明智的。谢谢你的帮助!!!我最终陷入了语法上的悔恨是不是很糟糕?我是一个初学者。我最终在句法上后悔是不是很糟糕?我是初学者。