【发布时间】:2019-06-27 17:31:07
【问题描述】:
我想访问可迭代对象的每个元素的索引。我在互联网上发现可以使用 enumerate 函数来生成具有与相应元素关联的索引的元组。但是我有一个困惑,python怎么知道我在for循环中选择的哪个变量被分配了索引,哪个变量被分配了元素的实际值?
我知道这不仅仅是枚举函数的问题。它是与 for 循环本身相关的东西,我想了解它是如何工作的。这是一个例子:
for idx, val in enumerate(items):
print("index is:"+str(idx)+" and value is:"+str(val))
python如何决定“idx”获取元组元素中两部分的索引值,“val”获取实际值部分?
是不是像 "var1,var2" 中左边的那个获取索引?
我们是否可以让“val”获取索引而“idx”获取实际值而不改变它们在“for idx,val in enumerate(items)”中的出现顺序
【问题讨论】:
-
查找元组解包。这是因为 enumerate 返回位置元组(元组中的第一个元素是索引,第二个元素是值)。所以它将第一个值解压到
idx,第二个值解压到val。交换你的变量,你会看到这个。 -
我们是否可以让“val”获取索引而“idx”获取实际值而不改变它们在“for idx,val in enumerate(items)”中的出现顺序 你确定可以,但为什么呢? 编辑:这是一种方法,但完全没用:
for idx, val in map(reversed, enumerate(items))。不要这样做。如果你想让val得到索引,改变变量的顺序。 -
尝试在 shell
a,b = (5,2)中进行操作。它的工作原理几乎相同 -
@pault 我问只是因为我想知道是否有办法。我知道切换两者显然是不直观的。感谢您的帮助!!!
标签: python python-3.x