因此,对于包含1000个元素的列表,我想从400循环到500.你是如何做到的?
我没有看到使用for each和for range技术的方法。
答案 0 :(得分:22)
for x in thousand[400:500]:
pass
如果您使用的是iterable而不是列表,则应使用itertools:
import itertools
for x in itertools.islice(thousand, 400, 500):
pass
如果需要循环thousand[500]
,则使用501作为后一索引。即使thousand[501]
不是有效索引,这也会有效。
答案 1 :(得分:7)
for element in allElements[400:501]:
# do something
这些是slices并生成整个列表的子列表。它们是Python的主要元素之一。
答案 2 :(得分:2)
使用
for element in allElements[400:501]:
doSomething(element)
使Python创建新对象,并可能对内存使用产生一些影响。
相反,我会使用:
for index in xrange(400, 501):
doSomething(allElements[index])
这种方式还允许您在迭代期间操作列表索引。
编辑:在Python 3.0中,您可以使用range()
代替xrange()
,但在2.5和更早版本中range()
创建一个列表,而xrange()
创建一个生成器,少了你珍贵的内存。