如何遍历列表的前 n 个元素?

Posted

技术标签:

【中文标题】如何遍历列表的前 n 个元素?【英文标题】:How to iterate over the first n elements of a list? 【发布时间】:2011-02-10 21:33:31 【问题描述】:

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

【问题讨论】:

【参考方案1】:

我可能会使用 itertools.islice

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

用法:

import itertools

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

输出:

1
2

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

在 Python 3.8.6 中测试。

【讨论】:

请注意,当您有一个列表时,使用切片通常更简单(除非您必须担心内存使用问题或类似问题)。如果这不是 第一个 块,但如果它是稍后的块,则正常切片可以更快且更好看。 很公平。加上常规切片更简洁,OP显然关心......【参考方案2】:

你可以对列表进行切片:

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

然后像使用任何可迭代对象一样对切片进行迭代。

【讨论】:

【参考方案3】:

正常的方式是slicing:

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

【讨论】:

请注意,这会创建列表的第一个 n 元素的副本,这对于大型列表可能会很慢且占用大量内存。 itertools.islice 效率更高(也适用于任何可迭代对象)。【参考方案4】:

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

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

【讨论】:

修改索引通常是值得努力避免的。 是的,切片更好;没想到

以上是关于如何遍历列表的前 n 个元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何在css中显示块的前N个元素并隐藏其他元素?

Python如何获取这个字典中指定列表和指定元素?

在 Java 中循环遍历数组的前 20 个元素

如何使用递归函数计算和打印以下序列的前 N ​​个元素的总和

在 python 中循环遍历列表的一部分时,我无法正确索引

hive sql - 如何选择 hive 数组列中的前 n 个元素并返回所选数组