зачем расширять список 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
  • Сгладить (нерегулярный) список списков
  • Возвратите все возможные комбинации строки при разбиении на n строк
  • Создать список пустых словарей
  • Если x является списком, то почему x + = "ha" работает, а x = x + "ha" выдает исключение?
  • Получить индекс в списке объектов по атрибуту в Python
  • Python dictionary: получить список значений для списка ключей
  • Python: список слияния с диапазоном
  • Позиция в списке? (Python)
  • Как получить n следующих значений генератора в списке (python)
  • Python - лучший язык программирования в мире.