Почему оператор + не изменяет список, а .append() изменяет?

Я работаю через Udacity, и Дэйв Эванс представил упражнение о свойствах списка

list1 = [1,2,3,4]
list2 = [1,2,3,4]

list1=list1+[6]
print(list1)
list2.append(6)
print(list2)

list1 = [1,2,3,4]
list2 = [1,2,3,4]

def proc(mylist):
    mylist = mylist + [6]

def proc2(mylist):
    mylist.append(6)

# Can you explain the results given by the four print statements below? Remove
# the hashes # and run the code to check.

print (list1)
proc(list1)
print (list1)

print (list2)
proc2(list2)
print (list2)

Результатом является

[1, 2, 3, 4, 6]
[1, 2, 3, 4, 6]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4, 6]

Таким образом, в функции добавление 6 в наборе не отображается, но отображается, когда не в функции?

7
задан brandizzi 21 September 2012 в 16:07
поделиться