开发者

How to get list index and element simultaneously in Python? [duplicate]

This question already has answers here: 开发者_如何学C Accessing the index in 'for' loops (26 answers) Closed 4 years ago.

I find myself frequently writing code like this:

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

Instead, I could do

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

but that doesn't seem "pythonic". (You know... indexing. Ick!) Is there some syntax that allows me to extract both the index (k) and the element (i) simultaneously using either a loop, list comprehension, or generator? The task is in scientific computing, so there is a lot of stuff in the loop body, making a list comprehension probably not powerful enough on its own, I think.

I welcome tips on related concepts, too, that I might not have even though of. Thank you.


You can use enumerate:

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

More information about looping techniques.

Edit:
As pointed out in the comments, using other variable names like

for i, item in enumerate(mylist):

makes it easier to read and understand your code in the long run. Normally you should use i, j, k for numbers and meaningful variable names to describe elements of a list.
I.e. if you have e.g. a list of books and iterate over it, then you should name the variable book.


enumerate is the answer:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜