69

假设我有一个列表,我想遍历其中的第一个n。用 Python 写这个的最好方法是什么?

4

4 回答 4

111

正常的方法是切片

for item in your_list[:n]: 
    ...
于 2010-04-22T03:45:51.620 回答
34

我可能会使用itertools.islice(<-按照文档的链接),它具有以下优点:

  • 使用任何可迭代对象
  • 不复制列表

用法:

import itertools

n = 2
mylist = [1, 2, 3, 4]
for item in itertools.islice(mylist, n):
    print(item)

输出:

1
2

一个缺点是,如果您想要一个非零开始,它必须逐个迭代到该点:https ://stackoverflow.com/a/5131550/895245

在 Python 3.8.6 中测试。

于 2010-04-22T03:41:03.903 回答
10

您可以对列表进行切片:

>>> l = [1, 2, 3, 4, 5]
>>> n = 3
>>> l[:n]
[1, 2, 3]

然后像任何可迭代的一样在切片上迭代。

于 2010-04-22T03:46:06.017 回答
2

Python 列表是 O(1) 随机访问,所以只需:

for i in xrange(n):
    print list[i]
于 2010-04-22T03:40:49.737 回答