你能给我详细解释一下节目的后半部分吗?我知道 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]
从中我们可以看出id
的test_list
与 input_list
相同在 1st
函数行。即两者都引用 [5,5,5]
.所以更改为test_list
或input_list
(第一行)将影响引用它的所有变量。 1st
行是 [5,5,5]
发生变化的地方.
然后input_list = range(1, 10)
.这次input_list
正在引用range(1, 10)
.仍然[10,5,5]
通过变量 test_list
引用.
希望这有帮助
关于python - 解释打印 test_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29463474/