Если я построить вложенный список:Почему `a + = x` и` a = a + x` реализованы по-разному для вложенного списка?
nested_list = 3*[[]]
и если я затем добавить элементы к нему
nested_list[1] += [1, 2, 3]
. возвращает: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]nested_list[1] = nested_list[1] + [1, 2, 3]
. возвращает: [[], [1, 2, 3], []]
Я ожидал получить результат для случая 2 для обеих операций.
Почему я получаю другой результат в случае 1? Является ли это выбором дизайна для python? Какова логика результата в случае 1?
Основная проблема заключается в том, что 'nested_list = 3 * [[]]' - плохой способ создать список списков: http://stackoverflow.com/q/240178/3001761 – jonrsharpe