Operation | Result
s * n or n * s | n shallow copies of s concatenated
Пример:
>>> 'a' * 5
'aaaaa'
>>> 5 * 'b'
'bbbbb'
Ответ 3
В Perl (man perlop) xназываетсяrepetition operator.
В Python 3 этот * также называется как repetition operator.
В Python 2 это, вероятно, называется тем же, но я только обнаружил, что он упоминается как как sequence repetition в встроенных операторах.
Я считаю важным отвлечься от Strings, поскольку это не единственное, для чего предназначен оператор; вот еще несколько:
Струны (хорошо, да)
Perl "ab"x5 для производства "ababababab"
Python "ab"*5 для того же.
Списки
Perl @ones = (1) x @ones назначает каждый элемент массива & не переназначает ссылку.
Python ones = [1] * len(ones) похож на тот же результат, но переназначает ссылку.
Списки списков:
Perl (0)x5 для производства ((0),(0),(0),(0),(0)).
Почти Python: [[0]]*5 - это [[0],[0],[0],[0],[0]]
Dicts/Hashes:
Perl: кажется, что он не поддерживается хэшем. Вам нужно конвертировать в списки и обратно.
Python: также, похоже, не поддерживается по требованию.
Однако, как следует из "почти" выше, в Python есть предостережение (из документации):
Также в Perl я не уверен, где это задокументировано, но пустой список ведет себя немного иначе с оператором, вероятно, потому что он имеет эквивалентность False.