有没有办法在Python中循环遍历列表的子部分

时间:2009-02-06 22:15:21

标签: python loops list

因此,对于包含1000个元素的列表,我想从400循环到500.你是如何做到的?

我没有看到使用for each和for range技术的方法。

3 个答案:

答案 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()创建一个生成器,少了你珍贵的内存。