解释print test_list

时间:2015-04-05 23:38:09

标签: python python-2.7

你能详细解释下半年的节目吗?我了解 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]

提前感谢您的所有帮助。

2 个答案:

答案 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_listrange(1, 10)仍在引用变量[10,5,5]

希望这有帮助

答案 1 :(得分:1)

您应该注意到两个不同的变量名为input_list

  1. 第一个被声明为全局test_list,由[5,5,5]初始化,并作为名为input_list的参数传递给函数{{ 1}}。

  2. 第二个在函数list_changer中声明本地,由list_changer初始化并覆盖第一个名称。

  3. 每次打印值时,都可以通过打印range(1,10)进行检查。