Сообщить об ошибке.

Повторение последовательности N раз

Синтаксис:

# Операции эквивалентны
sequence * n

# или 
n * sequence

Параметры:

Результат:

  • новая последовательность того-же типа.

Описание:

Операция позволяет добавить последовательность sequence к самой себе n раз.

В результате произойдет добавление последовательности sequence к себе n раз. Иногда операцию называют как "повторить последовательность несколько раз".

Примечание 1: Диапазоны range не поддерживают добавления себя к самой себе, т. к. последовательности элементов в них следуют определенным шаблонам.

Примечание 2: Изменяемое множество set не поддерживает операцию повторения в N раз, т.к. это неупорядоченная коллекция без повторяющихся элементов.

Примеры повторения последовательности.

>>> x = 'Hello'
>>> x * 5
# 'HelloHelloHelloHelloHello'

>>> x = [0, 1, 2, 3, 4]
>>> x * 3
# [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
>>> x * 0
# []
>>> x * -5
# []

>>> x = [[0, 1, 2, 3, 4]]
>>> x = x * 3
>>> x
# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>> x[0][0] = 10
>>> x
# [[10, 1, 2, 3, 4], [10, 1, 2, 3, 4], [10, 1, 2, 3, 4]]

Замечания к операции повторения последовательности:

Значения целого числа n меньше 0 обрабатываются как 0, что дает пустую последовательность того же типа, что и последовательность sequence. Обратите внимание, что элементы последовательности sequence не копируются. Вместо копирования, на элементы последовательности будут поставлены ссылки. Это часто удивляет новых программистов Python.

Примеры использования:

>>> lists = [[]] * 3
>>> lists
# [[], [], []]
>>> lists[0].append(3)
>>> lists
# [[3], [3], [3]]

Что здесь произошло? [[]] является одноэлементным списком, содержащим пустой список, поэтому все три элемента [[]] * 3 являются ссылками на этот единственный пустой список. Изменение любого из элементов списков изменяет этот единственный список.

Вот таким образом можно создать список различных списков:

>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]