Python:如何 For 循环列表并附加到新列表

slt*_*dev 4 python for-loop list append

练习我的蟒蛇。

任务:循环遍历列表 A 并创建一个新列表,其中仅包含 0-5 之间的列表 A 中的项目。

我在这里做错了什么

a = [100, 1, 10, 2, 3, 5, 8, 13, 21, 34, 55, 98]


def new_list(x):

    for item in range(len(x)):
        new = []

        if x[item] < 5 and x[item] > 0:
            (new.append(item))
            return new


print(new_list(a))
Run Code Online (Sandbox Code Playgroud)

我只是得到[1]一个答案。

Dan*_*nez 10

您返回命令在循环内,因此一旦它通过第一种情况,它就会返回退出函数的值。

这是您的代码应该是什么样子的示例

a = [100, 1, 10, 2, 3, 5, 8, 13, 21, 34, 55, 98]


def new_list(x):
    new = []
    for item in range(len(x)):            

        if x[item] < 5 and x[item] > 0:
            new.append(x[item])
    return new


print new_list(a)
Run Code Online (Sandbox Code Playgroud)

您可以通过使用列表理解来获得相同的结果

def new_list(x):
    return [item for item in x if 0 < item < 5]
Run Code Online (Sandbox Code Playgroud)