【发布时间】:2011-02-10 21:33:31
【问题描述】:
假设我有一个列表,我想遍历其中的第一个 n。用 Python 编写此代码的最佳方法是什么?
【问题讨论】:
假设我有一个列表,我想遍历其中的第一个 n。用 Python 编写此代码的最佳方法是什么?
【问题讨论】:
我可能会使用 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 中测试。
【讨论】:
你可以对列表进行切片:
>>> l = [1, 2, 3, 4, 5]
>>> n = 3
>>> l[:n]
[1, 2, 3]
然后像使用任何可迭代对象一样对切片进行迭代。
【讨论】:
正常的方式是slicing:
for item in your_list[:n]:
...
【讨论】:
n 元素的副本,这对于大型列表可能会很慢且占用大量内存。 itertools.islice 效率更高(也适用于任何可迭代对象)。
Python 列表是 O(1) 随机访问,所以只需:
for i in xrange(n):
print list[i]
【讨论】: