为什么item2的值改变了?

时间:2018-07-16 12:28:44

标签: python-3.x function random

第20行后,item2的值为什么会更改?我没有在代码中重新定义item2,所以我的期望是它不会改变。是否可以在不更改item2的值的情况下运行相同的代码?这是我的代码:

import  random   

def one(length):
    a = []
    for i in range(length):
        a.append(1)
    return(a)

def two(parent):
    b = parent
    if random.randint(0,10)<11:
        index = random.randint(0,6)
        b[index] = 6
    return b

item1 = one(6)
print(item1)
item2 = item1
print(item2)
item3 = two(item1)
print(item2)

这就是我得到的结果:

[1,1,1,1,1,1]

[1,1,1,1,1,1]

[1,6,1,1,1,1]

1 个答案:

答案 0 :(得分:0)

更改b = parentb = parent[:] 在第10行, @rakesh提供的答案