在列表中打印第N项

时间:2014-05-15 03:35:51

标签: python-3.x

尝试创建一个在数字或单词列表中返回Nth的函数。我想保持简单,不输入任何东西,我想把它用于学习目的,欢迎几个例子,谢谢!

def printNth(lst,n):
    lst=[]
    for i in lst:
        if i>=0:
            if i%n!=0:
                print(i)

现在对于数字列表,我得到了我想要的输出示例:

printNth([1,2,3,4,5,6],2)
1
3
5

我无法用文字处理它。

我希望它做的例子:

printNth(['apple','pear','oj','banana'],2)
'apple'
'pear'

1 个答案:

答案 0 :(得分:0)

您正在设置lst=[],完全忽略传入的lst

删除这个荒谬的行。

此外,for i in lst会迭代列表中的所有。如果您想迭代项目的索引,请使用enumerate()

def printNth(lst, n):
    for idx,item in enumerate(lst):
        if (idx % n) != 0:
            print(item)

更好的想法是创建一个返回每个第n项的函数。这就是生成器派上用场的地方:

def every_nth(lst, n):
    for idx,item in enumerate(lst):
        if (idx % n) != 0:
            yield item

for item in every_nth(['apple','pear','oj','banana'], 2):
    print item