我正在尝试查找列表中的每个第n个元素,但我很遗憾。这是我的代码:
def returnNth(lst, n):
'list ==> list, return every nth element in lst for n > 0'
res = []
for a in lst:
res = res + [a[::n]]
return res
我认为[a [:: n]]可以用来查找结果,但我只是得到了int不可订阅的错误消息。对于列表[1,2,3,4,5,6],returnNth(1,2)应返回[1,3,5]和列表[“dog”,“cat”,3,“hamster” ,True],returnNth(你好,2)应该返回['dog',3,True]我可以用什么来解决这个问题?
答案 0 :(得分:31)
您只需lst[::n]
,无需迭代列表中的元素。
示例:
>>> lst=[1,2,3,4,5,6,7,8,9,10]
>>> lst[::3]
[1, 4, 7, 10]
>>>
答案 1 :(得分: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]
答案 2 :(得分:1)
我需要每个第n个元素......
def returnNth(lst, n):
# 'list ==> list, return every nth element in lst for n > 0'
return lst[::n]