【发布时间】:2020-06-17 17:42:26
【问题描述】:
def function_b(b_list, high_num):
c_list = [0,0,0,0,0,0,0]
i = 0
for num in b_list:
if num> high_num:
c_list[i] = num
i = i +1
b_list = c_list
def main():
b_list=[1,3,6,4,1,2,8]
high_num=4
function_b(b_list, high_num)
print(b_list)
main()
谁能解释为什么这不会打印 [0,0,6,0,0,0,8]?我认为由于列表是可变对象,因此如果我们在 function_b 中分配参数b_list =c_list,它会更改在 main 中找到的 b_list。为什么这对我们插入 function_b 的参数 b_list 没有影响?
【问题讨论】:
-
b_list成为本地函数,只要你有一个赋值,它就会在函数作用域结束后被销毁。 -
这能回答你的问题吗? Python modifying list within function
-
您的函数
function_b没有返回任何内容,并且 Austin 解释的内容也是正确的。
标签: python