此列表,
l=[i for i in range(1,100)]
如何限制只打印前20个元素。
我想做的是,
>>> counter=0
>>> for index , i in enumerate(l):
... if counter==20:
... break
... print index , i
... counter+=1
...
是否有其他方法可以在不使用counter
变量的情况下执行此操作?
答案 0 :(得分:4)
使用切片列表,例如
l=[i for i in range(1,100)]
for index, i in enumerate(l[:20]):
print index, i
或者您可以使用itertools.islice
,以避免生成整个列表,而是根据需要迭代xrange
,就像这样
from itertools import islice
for index, i in enumerate(islice(xrange(1, 100), 20)):
print index, i
答案 1 :(得分:1)
Nishant N.的回答可能是最好的。但是,如果您将if
语句更改为
if i == 20:
万一你想知道为什么它不起作用(你也需要在你发布的代码之前将counter
设置为0,但我接受可能只是省略了。