你能详细解释下半年的节目吗?我了解 input_list [0] = 10 是一个变量,其范围为1 - 10 ,但列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
,{{1} },[10, 2, 3, 4, 5, 6, 7, 8, 9]
来自?
[10, 5, 5]
提前感谢您的所有帮助。
答案 0 :(得分:1)
使用id
def list_changer(input_list):
input_list[0] = 10
print id(input_list)
input_list = range(1, 10)
print(input_list)
input_list[0] = 10
print(input_list)
>>>test_list = [5, 5, 5]
>>>print id(test_list)
>>>list_changer(test_list)
>>>print test_list
#output
139794448752512
139794448752512
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[10, 2, 3, 4, 5, 6, 7, 8, 9]
[10, 5, 5]
通过此,我们可以看到id
的{{1}}与test_list
函数行中的input_list
相同。这两者都引用1st
。对[5,5,5]
或test_list
(第1行)的更改将影响引用它的所有变量。input_list
行是1st
发生更改的位置。
然后[5,5,5]
。这一次input_list = range(1, 10)
引用了input_list
。range(1, 10)
仍在引用变量[10,5,5]
。
希望这有帮助
答案 1 :(得分:1)
您应该注意到两个不同的变量名为input_list
:
第一个被声明为全局为test_list
,由[5,5,5]
初始化,并作为名为input_list
的参数传递给函数{{ 1}}。
第二个在函数list_changer
中声明本地,由list_changer
初始化并覆盖第一个名称。
每次打印值时,都可以通过打印range(1,10)
进行检查。