在python中每次迭代后,我应该如何将所有结果附加到一个列表中?

时间:2018-03-14 19:28:32

标签: python

def pascalstriangle(n):
    list = [1]
    for i in range(n):
        print(list)
        newlist = []
        newlist.append(list[0])
        for i in range(len(list) - 1):
            newlist.append(list[i] + list[i + 1])
        newlist.append(list[-1])
        list = newlist
print(pascalstriangle(3))

我希望看到此打印格式[1,1,1,1,2,1]而不是

[1] 
[1, 1]
[1, 2, 1]

3 个答案:

答案 0 :(得分:1)

要修复上述代码,无论何时打印list,您都可以将其添加到其他列表中(以下代码中的final_list添加到extend )并最终在函数结束时返回它:

def pascalstriangle(n):
    list = [1]
    final_list = []

    for i in range(n):
        final_list.extend(list)
        newlist = []
        newlist.append(list[0])
        for i in range(len(list) - 1):
            newlist.append(list[i] + list[i + 1])
        newlist.append(list[-1])
        list = newlist
    return final_list

print(pascalstriangle(3))

结果:

[1, 1, 1, 1, 2, 1]

您可能想要考虑的一件事是不使用list作为变量并使用my_list之类的东西。

答案 1 :(得分:0)

您可以在Python中组合两个列表,如下所示:

print([1, 2] + [3])
> [1, 2, 3]

我希望有所帮助!

答案 2 :(得分:0)

只需合并两个列表:

final_list = list1 + list2