如何迭代列表的前 n 个元素?

假设我有一个列表,我想迭代它们中的第一个 n。用 Python 编写这个代码的最佳方法是什么?

86768 次浏览

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

for i in xrange(n):
print list[i]

我可能会使用 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中测试。

正常的方法是 切片:

for item in your_list[:n]:
...

你可以把清单分成几部分:

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

然后在片上进行迭代,就像任何迭代一样。