任何内置的工作`范围(len(lst))`?

upd*_*liu 3 python python-3.x

我发现自己经常使用类似的东西

for i in range(len(lst1)): lst1[i] += lst2[i]
Run Code Online (Sandbox Code Playgroud)

有内置的等价物range(len(.))吗?

(顺便说一句,我使用的是Python3.)

Pav*_*sov 11

for i, e in enumerate(lst2):
    lst1[i] += e
Run Code Online (Sandbox Code Playgroud)

要么

lst1 = [e1 + e2 for e1, e2 in zip(lst1, lst2)]
Run Code Online (Sandbox Code Playgroud)


Ash*_*ary 6

更好用enumerate():

 for index,x in enumerate(lst1):
      lst1[index] += lst2[index]
Run Code Online (Sandbox Code Playgroud)

enumerate()返回一个enumerate对象,其中包含tuples元组的第一项是索引,第二项是元素.(默认情况下,索引从0开始,您可以通过传递可选参数来更改它enumerate())

例:

In [50]: lst1=['a','b','c','s']

In [51]: list(enumerate(lst1))         #default index values, i.e 0
Out[51]: [(0, 'a'), (1, 'b'), (2, 'c'), (3, 's')]

In [53]: list(enumerate(lst1,1))       #index started at 1 
Out[53]: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 's')]
Run Code Online (Sandbox Code Playgroud)