你能给我详细解释一下节目的后半部分吗?我知道 input_list[0] = 10 是一个范围为 1 - 10 的变量,但是列表 [1, 2, 3, 4、5、6、7、8、9、10]
、[10、2、3、4、5、6、7、8、9]
和 [10, 5, 5]
从哪里来?
def list_changer(input_list):
input_list[0] = 10
input_list = range(1, 10)
print(input_list)
input_list[0] = 10
print(input_list)
>>> test_list = [5, 5, 5]
>>> list_changer(test_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[10, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print test_list
[10, 5, 5]
预先感谢您的所有帮助。
尝试使用 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]
由此可见test_list
的id
与1st
函数中的input_list
相同.那就是两者都引用了[5,5,5]
。所以对test_list
或input_list
(第一行)的更改将影响到所有引用它的变量。第 1
行是 [5,5,5]
发生变化的地方。
然后 input_list = range(1, 10)
。这次 input_list
引用 range(1, 10)
。还是 [10,5,5]
由变量 test_list
引用。
希望对你有帮助
我是一名优秀的程序员,十分优秀!