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

时间:2013-02-04 04:13:30

标签: python

我正在尝试查找列表中的每个第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]我可以用什么来解决这个问题?

3 个答案:

答案 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]
相关问题