【问题标题】:Python for loops has index for counterPython for 循环具有计数器索引
【发布时间】:2016-08-18 11:59:11
【问题描述】:

您好,我是 Python 的初学者,尝试使用 for 循环读取代码的一部分但无法理解,是否有人知道循环计数器上的索引是如何存在的?谢谢

updateNodeNbrs = []
for a in nodeData:
    updateNodeNbrs.append(a[0])

【问题讨论】:

  • 什么是nodeData
  • a 不是像(0,1,2,...) 这样的经典意义上的循环计数器。它会迭代 nodeData 的值,如果这些值又是容器,您可以对它们进行索引。尝试在循环中打印 a 以查看它在每次迭代中采用的值。
  • 例如,如果您习惯于 Javascript - 您可以将 Python 的 for 循环视为 for var of... 而不是 for var in...

标签: python for-loop


【解决方案1】:

您正在迭代 directly over the elementsnodeData,因此不需要索引。当前元素由a指定。

这相当于:

updateNodeNbrs = []
for i in range(len(nodeData)):
    updateNodeNbrs.append(nodeData[i][0])

虽然原代码多pythonic


如果您想让索引出现,您可以将带有enumerate 的代码转换为:

updateNodeNbrs = []
for i, a in enumerate(nodeData):
    updateNodeNbrs.append(a[0])

这里,i 将是元素a 的索引,您可以在循环中使用它。

【讨论】:

    【解决方案2】:

    看到同样的问题here

    如果你有一个现有的列表,并且你想遍历它并跟踪索引,你可以使用enumerate 函数。例如

    l = ["apple", "pear", "banana"]
    for i, fruit in enumerate(l):
       print "index", i, "is", fruit
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-16
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 2013-03-20
      • 1970-01-01
      • 2020-06-20
      相关资源
      最近更新 更多