Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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
如何在Python中同时获取列表索引和元素?_Python - Fatal编程技术网

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

如何在Python中同时获取列表索引和元素?,python,Python,我发现自己经常编写这样的代码: k = 0 for i in mylist: # y[k] = some function of i k += 1 相反,我能做到 for k in range(K): # y[k] = some function of mylist[k] 但这似乎不是“蟒蛇式的”。(你知道……indexing.Ick!)是否有一些语法允许我使用循环、列表理解或生成器同时提取索引(k)和元素(i)?这项任务是在科学计算中完成的,因此循环体中有很多东西,

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

k = 0
for i in mylist:
    # y[k] = some function of i
    k += 1
相反,我能做到

for k in range(K):
    # y[k] = some function of mylist[k]
但这似乎不是“蟒蛇式的”。(你知道……indexing.Ick!)是否有一些语法允许我使用循环、列表理解或生成器同时提取索引(k)和元素(i)?这项任务是在科学计算中完成的,因此循环体中有很多东西,我认为单凭列表理解可能不够强大


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

您可以使用
枚举

for k,i in enumerate(mylist):
    #do something with index k
    #do something with element i
有关的更多信息

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

for i, item in enumerate(mylist):
从长远来看,使您的代码更易于阅读和理解。通常,您应该使用
i
j
k
来表示数字和描述列表中的元素。
例如,如果您有一个图书列表并对其进行迭代,则应将变量命名为
book

答案是:

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

enumerate还允许您使用start参数在喜欢的位置启动索引。有时候这很方便。可能只有我一个人在这里,但是使用
I
作为变量来保存iterable的每个元素会让我在阅读此代码时感到厌烦。在循环代码中,索引的
i
j
不是很标准的变量名吗?但是,如果只想循环列表的某些元素,而不是整个列表,请小心。开始参数是将分配给第一个拉入项的编号,而不是原始列表中的索引。如果您在enumerate(mylist,start=12)中为i编写项,那么您将从列表中获取每个项,i从12开始计数。类似地,如果只遍历一个切片,但不设置起点,那么我从0开始。希望这对别人有帮助。