查找列表中的每第n个元素
我该如何找到列表中的每第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]
>>>