你能给我详细解释下半部分的计划吗?我知道input\u 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]
事先谢谢你的帮助。你知道吗
您应该注意到有两个不同的变量名为
input_list
:第一个被全局声明为
test_list
,由[5,5,5]
初始化,并作为名为input_list
的参数传递给函数list_changer
。第二个在函数
list_changer
中本地声明为,由range(1,10)
初始化并重写第一个函数的名称。您可以通过每次打印值时打印
id(input_list)
来检查这一点。你知道吗用
id
试试这个由此我们可以看出
test_list
的id
与1st
行中的input_list
相同功能。那个两者都引用[5,5,5]
。因此对test_list
或input_list
(第1行)的更改将影响引用它的所有变量。1st
行是[5,5,5]
发生更改的地方。你知道吗然后
input_list = range(1, 10)
。这次input_list
引用range(1, 10)
。仍然[10,5,5]
引用变量test_list
。你知道吗希望这有帮助
相关问题 更多 >
编程相关推荐