相关疑难解决方法(0)

是否需要范围(len(a))?

人们常常在SO的python问题中找到这种类型的表达式.要么只是访问iterable的所有项目

for i in range(len(a)):
    print(a[i])
Run Code Online (Sandbox Code Playgroud)

这只是一种繁琐的写作方式:

for e in a:
    print(e)
Run Code Online (Sandbox Code Playgroud)

或者为了分配可迭代的元素:

for i in range(len(a)):
    a[i] = a[i] * 2
Run Code Online (Sandbox Code Playgroud)

哪个应该是相同的:

for i, e in enumerate(a):
     a[i] = e * 2
# Or if it isn't too expensive to create a new iterable
a = [e * 2 for e in a]
Run Code Online (Sandbox Code Playgroud)

或者对索引进行过滤:

for i in range(len(a)):
    if i % 2 == 1: continue
    print(a[i])
Run Code Online (Sandbox Code Playgroud)

可以这样表达:

for e in a [::2]:
    print(e)
Run Code Online (Sandbox Code Playgroud)

或者当您只需要列表的长度而不是其内容时:

for _ in range(len(a)):
    doSomethingUnrelatedToA() …
Run Code Online (Sandbox Code Playgroud)

python for-loop range

63
推荐指数
3
解决办法
14万
查看次数

标签 统计

for-loop ×1

python ×1

range ×1