someValue
Если неизменен, вы можете использовать умножение:
someList += [someValue] * someNumber
Это создает someNumber
ссылки на тот же объект someValue
. Это означает, что если someValue
является объектом mutable, вы увидите изменения этого объекта, отраженные во всех этих ссылках.
Так что для mutable типов вы обычно используете понимание списка, чтобы убедиться, что новый объект создан. Чтобы расширить список, вместо +=
вы можете также использовать list.extend()
с выражением генератора:
someList.extend(['extra', 'list', 'elements'] for _ in range(someNumber))
Демо:
>>> someList = ['foo', 'bar', 'baz']
>>> someList += ['spam'] * 5
>>> someList
['foo', 'bar', 'baz', 'spam', 'spam', 'spam', 'spam', 'spam']
и изменяемый объект (список в данном случае):
>>> someList = ['foo', 'bar', 'baz']
>>> someList += [['spam']] * 5
>>> someList
['foo', 'bar', 'baz', ['spam'], ['spam'], ['spam'], ['spam'], ['spam']]
>>> someList[-1].append('ham')
>>> someList
['foo', 'bar', 'baz', ['spam', 'ham'], ['spam', 'ham'], ['spam', 'ham'], ['spam', 'ham'], ['spam', 'ham']]
>>> someList[-1] is someList[-2]
True
'someList.extend ([3] * 10) 'как только значение будет неизменным –