Python 无法返回列表中的值

Python 无法返回列表中的值,python,python-3.6,Python,Python 3.6,我想返回列表的最终值,它是new_list[3],但它在末尾不返回任何内容。我可以使用打印功能获得新列表[3]的最终值。我对返回函数很困惑。当2 for循环结束时,是否可能返回新的_列表[次数] original_list = [100,300,400,900,1500] def filter_list(_list,times): L = len(_list) new_list = [list(_list) for k in range(times+1)] for k

我想返回列表的最终值,它是new_list[3],但它在末尾不返回任何内容。我可以使用打印功能获得新列表[3]的最终值。我对返回函数很困惑。当2 for循环结束时,是否可能返回新的_列表[次数]

original_list = [100,300,400,900,1500]

def filter_list(_list,times):

    L = len(_list)
    new_list = [list(_list) for k in range(times+1)]
    for k in range (0,times):
        for j in range (0,L):
            if j == 0: #exclude the term [j-1] because new_list[-1] is not exist
                new_list[k+1][j] = int(new_list[k][j]*0.2 + new_list[k][j+1]*0.5)
            elif j == L-1: #exclude the term [j+1] because new_list[L] is not exist
                new_list[k+1][j] = int(new_list[k][j-1]*0.4 + new_list[k][j]*0.2)
            else:
                new_list[k+1][j] = int(new_list[k][j-1]*0.4 + new_list[k][j]*0.2 + new_list[k][j+1]*0.5)
    return (new_list[times])

filter_list(original_list,3)

函数能够将值返回到调用它的作用域。如果该变量未存储或未传递到另一个函数,则该变量将丢失

例如:

def外汇: 返回x+1 f5

不会打印任何内容,因为f5调用返回的6未执行任何操作

要输出函数返回的值,我们可以将其传递给print函数:

print(f(5))
或者在您的情况下:

print(filter_list(original_list, 3))

这就是返回函数的作用:


return语句结束函数调用的执行,并将结果(即return关键字后面的表达式值)返回给调用方。如果return语句没有表达式,则返回特殊值None。

返回项,但不将其分配给任何对象

x = filter_list(original_list,3)

print(x)
这将要做的是将从函数调用返回的任何内容赋给一个变量(在本例中为x),然后您的变量将保存您现在返回的任何内容

这里有一个简单的模型来可视化这一点

def something():
    x = 1
    return x

def something_print():
    x = 1
    return print(x)

a = something()
print(a)

something_print()

我得到[263561744763436]。你打印了Filter_listoriginal_list,3以查看结果吗?@Austin我正在使用jupyter笔记本,最后一行会自动打印@KhalilAlHooti OP可能没有使用Jupyter笔记本@Austin我认为他在函数本身有问题,而不是缺少打印输出。!!是否有其他方法不使用打印而只返回?因为这是我的作业的一部分,它只允许我使用返回函数。@Shen如果您想要输出,您必须使用这样简单的打印。
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 fucntion_call.py 
1
1