查找列表中的每第n个元素

8 投票
3 回答
48580 浏览
提问于 2025-04-17 14:39

我该如何找到列表中的每第n个元素呢?

比如说,对于一个列表 [1,2,3,4,5,6],如果我用 returnNth(l,2),它应该返回 [1,3,5]。再比如,对于一个列表 ["dog", "cat", 3, "hamster", True],用 returnNth(u,2) 应该返回 ['dog', 3, True]。我该怎么做呢?

3 个回答

-1

如果你需要每隔n个元素取一个...

  def returnNth(lst, n):
        # 'list ==> list, return every nth element in lst for n > 0'
        return lst[::n]
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]
47

你只需要用 lst[::n] 这个写法。

举个例子:

>>> lst=[1,2,3,4,5,6,7,8,9,10]
>>> lst[::3]
[1, 4, 7, 10]
>>> 

撰写回答