在列表中找到每个第n个元素。

8

如何找到列表中每个第n个元素?

对于列表[1,2,3,4,5,6]returnNth(l,2)应该返回[1,3,5],对于列表["dog", "cat", 3, "hamster", True]returnNth(u,2)应该返回['dog', 3, True]。怎么做呢?


1
它是在Python2.3中引入的;请参阅文档--> http://docs.python.org/release/2.3.5/whatsnew/section-slices.html - namit
3个回答

47
你只需要使用lst[::n]
示例:
>>> lst=[1,2,3,4,5,6,7,8,9,10]
>>> lst[::3]
[1, 4, 7, 10]
>>> 

如果我们想要[2,5,8]怎么办? - Rohan Marwah
4
lst[1::3] 的翻译是:从列表 lst 的第二个元素开始,每隔两个元素取一个元素。 - us2012

3
In [119]: def returnNth(lst, n):
   .....:     return lst[::n]
   .....:

In [120]: returnNth([1,2,3,4,5], 2)
Out[120]: [1, 3, 5]

In [121]: returnNth(["dog", "cat", 3, "hamster", True], 2)
Out[121]: ['dog', 3, True]

-1

如果你需要每个第n个元素....

  def returnNth(lst, n):
        # 'list ==> list, return every nth element in lst for n > 0'
        return lst[::n]

1
-1;这并没有提供任何新的信息,因为其他两个回答已经在10分钟前发布了。 - Mark Amery

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接