如何在python中同时获取列表索引和元素?

How to get list index and element simultaneously in Python?

本问题已经有最佳答案,请猛点这里访问。

我发现自己经常写这样的代码:

1
2
3
4
k = 0
for i in mylist:
    # y[k] = some function of i
    k += 1

相反,我可以

1
2
for k in range(K):
    # y[k] = some function of mylist[k]

但这似乎不是"Python"。(你知道……索引。艾克!)是否有一些语法允许我使用循环、列表理解或生成器同时提取索引(k)和元素(i)?任务是科学计算,所以循环体中有很多东西,我认为单列理解本身可能不够强大。

我也欢迎有关概念的提示,尽管我可能没有。谢谢您。


您可以使用enumerate

1
2
3
for k,i in enumerate(mylist):
    #do something with index k
    #do something with element i

有关循环技术的详细信息。

编辑:正如注释中指出的,使用其他变量名,如

1
for i, item in enumerate(mylist):

使您从长远来看更容易阅读和理解代码。通常,您应该使用ijk来表示数字和有意义的变量名来描述列表中的元素。例如,如果您有一个图书列表并对其进行迭代,那么您应该命名变量book


enumerate是答案:

1
2
for index, element in enumerate(iterable):
    #work with index and element