В чем разница между плюсом и добавлением в python для манипулирования списками?

Возможный дубликат:
Python append () vs. + operator в списках, почему они дают разные результаты?

Какова фактическая разница между «+» и «append» для манипулирования списками в Python?

  • Django rss feedparser возвращает фид без «заголовка»,
  • Как заставить большие шаги выполнять функции scipy.optimize?
  • сохраняющая фигуру кусочно-кубическая интерполяция для 3D-кривой в питоне
  • Python - Самый эффективный способ реализовать два дополнения?
  • Список связанных с Python O (1) insert / remove
  • Python: создание звукового сигнала
  • Python3 + Curses: Как нажимать «q» для окончательной программы сразу?
  • Как получить последние элементы списка в Python?
  • 5 Solutions collect form web for “В чем разница между плюсом и добавлением в python для манипулирования списками?”

    Есть два основных отличия. Первое заключается в том, что + ближе по смыслу к extend чем к append :

     >>> a = [1, 2, 3] >>> a + 4 Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> a + 4 TypeError: can only concatenate list (not "int") to list >>> a + [4] [1, 2, 3, 4] >>> a.append([4]) >>> a [1, 2, 3, [4]] >>> a.extend([4]) >>> a [1, 2, 3, [4], 4] 

    Другая, более заметная разница заключается в том, что методы работают на месте: extend на самом деле похоже на += – на самом деле, оно имеет точно такое же поведение, как += за исключением того, что оно может принимать любые итерации, а += может принимать только другое список.

    Использование list.append изменяет список на месте – его результат равен None . Использование + создает новый список.

     >>> L1 = [1,2,3] >>> L2 = [97,98,99] >>> >>> # Mutate L1 by appending more values: >>> L1.append(4) >>> L1 [1, 2, 3, 4] >>> >>> # Create a new list by adding L1 and L2 together >>> L1 + L2 [1, 2, 3, 4, 97, 98, 99] >>> # L1 and L2 are unchanged >>> L1 [1, 2, 3, 4] >>> L2 [97, 98, 99] >>> >>> # Mutate L2 by adding new values to it: >>> L2 += [999] >>> L2 [97, 98, 99, 999] 

    Операция + добавляет элементы массива в исходный массив. Операция array.append вставляет массив (или любой объект) в конец исходного массива.

     [1, 2, 3] + [4, 5, 6] // [1, 2, 3, 4, 5, 6] b = [1, 2, 3] b.append([4, 5, 6]) // [1, 2, 3, [4, 5, 6]] 

    Посмотрите здесь: Python append () vs. + operator в списках, почему они дают разные результаты?

    + является двоичным оператором, который создает новый список в результате объединения двух списков операндов. append – это метод экземпляра, который добавляет один элемент в существующий список.

    PS Вы имели в виду extend ?

    Python - лучший язык программирования в мире.