Когда я исполняю (я использую интерактивную оболочку) эти заявления я получаю это:В чем разница между LIST.append (1) и LIST = LIST + [1] (Python)
L=[1,2,3]
K=L
L.append(4)
L
[1,2,3,4]
K
[1,2,3,4]
Но когда я делаю точно то же самое, заменив L.append (4) с L = L + [4] я получаю:
L
[1,2,3,4]
K
[1,2,3]
Является ли это какое-то эталонными вещи? Почему это происходит?
Еще одна забавная вещь, которую я заметил, это то, что L + = [4] действует как .append, что является нечетным, поскольку я думал, что он будет действовать как L = L + [4].
Уточнение на все это было бы весьма полезным.
Благодаря
'+ =' странно в питоне. например, 'a = (1, 2); a + = (2,) 'дает' (1, 2, 3) '! Это полная противоположность ситуации в списке, где ite изменяет список на месте. Невозможно изменить кортеж на месте.поэтому многие люди предпочитают всегда использовать форму 'a = a + b'. – aaronasterling
нет, нет, после a = (1, 2); a + = (2,) a есть (1,2,2), что странно в этом? – Kugel
Я думаю, он имел в виду 'a + = (3,)'. И это странно, что он позволяет вам изменять (неизменный) кортеж на месте, как это. – efritz