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

Bia*_*cki 48 python list slice

说我有一个列表,我想迭代n它们中的第一个.在Python中编写此代码的最佳方法是什么?

Mik*_*ham 85

通常的方法是切片:

for item in your_list[:n]: 
    ...
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这会创建列表的前 n 个元素的副本,对于大型列表,这可能会很慢并且占用大量内存。`itertools.islice` 效率更高(也适用于任何可迭代对象)。 (2认同)

Mic*_*zyk 22

我可能会使用itertools.islice(< - 跟随文档的链接),这有利于处理任何可迭代对象.

  • 请注意,当您有列表时,使用切片通常会更简单(除非您不必担心内存使用问题或类似问题)。如果不是*第一个*块,但如果是*后一个块,则正常切片会更快,更美观。 (2认同)

ezo*_*zod 9

你可以切片列表:

>>> l = [1, 2, 3, 4, 5]
>>> n = 3
>>> l[:n]
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

然后像任何迭代一样迭代切片.