зачем расширять список python

Зачем использовать расширение, когда вы можете просто использовать оператор + =? Какой метод лучше? Также лучший способ объединения нескольких списков в один список

#my prefered way _list=[1,2,3] _list+=[4,5,6] print _list #[1, 2, 3, 4, 5, 6] #why use extend: _list=[1,2,3] _list.extend([4,5,6]) print _list #[1, 2, 3, 4, 5, 6] _lists=[range(3*i,3*i+3) for i in range(3)] #[[0, 1, 2], [3, 4, 5], [6, 7, 8]] #my prefered way of merging lists print sum(_lists,[]) #[0, 1, 2, 3, 4, 5, 6, 7, 8] #is there a better way? from itertools import chain print list(chain(*_lists)) #[0, 1, 2, 3, 4, 5, 6, 7, 8] 

2 Solutions collect form web for “зачем расширять список python”

+= может использоваться только для расширения одного списка другим списком , в то время как extend можно использовать для расширения одного списка с помощью итеративного объекта

например

ты можешь сделать

 a = [1,2,3] a.extend(set([4,5,6])) 

но вы не можете сделать

 a = [1,2,3] a += set([4,5,6]) 

По второму вопросу

 [item for sublist in l for item in sublist] is faster. 

см. Создание плоского списка из списка списков в Python

Вы можете extend() список python с не-list-объектом в качестве итератора. Итератор не сохраняет какое-либо значение, а объект для повторения нескольких значений. Подробнее об итераторах здесь .

В этом потоке есть примеры, когда итератор используется как аргумент метода extend() : append vs. extend

  • Нужно ли знать архитектуру машины для написания кода?
  • Как создать неизвестное количество переменных в python
  • Нарезка списка на Python без создания копии
  • Список гарантированно является пустым списком, если список предшествует списку ?
  • Как переназначить элементы в списке в Python?
  • слияние словарей Python
  • сортировка вложенного словаря со списками в python
  • Как переместить смещение метода 'index' в 'list'
  • Python - лучший язык программирования в мире.