все Python 3Списки (list)понятие
+ объединение / * повторение списков
операторы
Оператор + возвращает новый список-объединение. * повторяет список n раз, но элементы не копирует: повторяются ссылки на те же объекты.
Синтаксис
lst1 + lst2 | lst * n
Оба оператора строят новый список целиком, поэтому накопление в цикле вида res = res + [x] квадратично по времени — используйте append() или extend(). Различайте lst += other и lst = lst + other: += меняет список на месте, как extend, и это видят все, кто держит ссылку на тот же объект, к тому же справа допустим любой итерируемый объект; обычный + требует, чтобы справа тоже был список, иначе TypeError.
Примеры
print([1, 2] + [3, 4])
# → [1, 2, 3, 4]
print([0] * 5)
# → [0, 0, 0, 0, 0]
print(['a', 'b'] * 3)
# → ['a', 'b', 'a', 'b', 'a', 'b']
print([1, 2] + [])
# → [1, 2]
trap = [[]] * 3
trap[0].append(1)
print(trap)
# → [[1], [1], [1]] (одна ссылка!)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности