为什么我的输出数字不会附加到我的列表中?

时间:2014-10-27 23:30:08

标签: python list

这是我的代码:

def lonChain(N):
    final_list = []
    s = list(range(N,10001))
    print (s)
    counter = 0
    while counter < len(s):
        final_list.append(minChain((s[counter])))
        counter += 1
    print (y)

minChain def输出一个13之类的数字(假设变量r只是为了更好地理解它)(单个数字),即没有列表或任何东西。 但lonChain所做的是为输入N调用函数。所以假设N是9999,列表将是[9999,10000] 所以我得到的输出是:

13
7
[None,None]

但我希望输出如下:

[13,7]

3 个答案:

答案 0 :(得分:1)

如果你想追加到你的列表,那么你需要使用追加方法

y = []
while counter < len(s):
    y.append(minChain((s[counter])))
    counter += 1

而在您刚刚覆盖每个循环步骤的y变量之前

答案 1 :(得分:1)

你说&#34; minChain def输出一个像13&#34;的数字。通常当人们谈论函数的输出时,他们指的是返回值

此处看起来您的功能可能打印结果而不是返回

如果您未明确返回任何内容,则会返回None

此函数将打印结果,但返回None

def f(x):
    print(x * 2)

此函数返回结果

def f(x):
    return x * 2

答案 2 :(得分:0)

您期望如何将数据附加到列表中?你没有在任何时候告诉它这样做:Python不可能猜到你想要的东西。

似乎,而不是打印y,你想将它追加到final_list:所以这样做。

    final_list.append(y)
return final_list