如何使用Python从输出中删除多余的列表?

时间:2019-04-07 21:00:41

标签: python list

我正在努力提高自己的编码技能,并通过创建可以解决数学问题的功能来实现这一目标。

我正在尝试建立一个简单的方程:S = 1 / n其中n可以是任何大于0的整数。我已经设置了代码,以便输出显示结果列表。

def Sup(n):
    list = []
    for n in range (1,n+1):
        Sup = (1/n)
        list.append(Sup)
        print (list)
Sup(4)

[1.0]
[1.0, 0.5]
[1.0, 0.5, 0.3333333333333333]
[1.0, 0.5, 0.3333333333333333, 0.25]

我设法做到了,但是,我只想得到一个列表,显示当n = 1,2,3,4时的结果。最终列表是我想要的,而不是前面的3个列表。为什么我会得到多个列表?

4 个答案:

答案 0 :(得分:1)

print (list)移出循环:

def Sup(n):
    list = []
    for n in range (1,n+1):
        Sup = (1/n)
        list.append(Sup)
    print (list)

答案 1 :(得分:1)

您需要将最后一个打印语句移出循环。现在,它为每次迭代打印了循环,但是如果您只希望打印一次,请删除缩进,以便仅在循环结束后才打印:

def Sup(n):
    list = []
    for n in range (1,n+1):
        Sup = (1/n)
        list.append(Sup)
    # Move this print statement down
    print (list)

答案 2 :(得分:1)

您可以打印许多列表,因为循环中有print语句 。因此,每个列表都会被打印出来。要仅打印最终列表,请对print语句进行缩排,使其不在循环中。

def Sup(n):
    list = []
    for n in range (1,n+1):
        Sup = (1/n)
        list.append(Sup)
    print (list)  # out-dented!
Sup(4)

答案 3 :(得分:0)

您在print()循环的for内部 中调用,导致print()在每次迭代中都被调用。如果您想用Google搜索更多详细信息,则遇到范围问题。如果您将对print()的调用缩进一级,则它将在函数作用域而不是循环作用域中,并且仅在循环完成后才被调用。