Ответ 1
Для неизменяемых типов данных:
l = [0] * 100
# [0, 0, 0, 0, 0, ...]
l = ['foo'] * 100
# ['foo', 'foo', 'foo', 'foo', ...]
Для значений, которые хранятся по ссылке, и вы можете захотеть впоследствии изменить (например, под-списки или dicts):
l = [{} for x in range(100)]
(Причина, по которой первый метод является лишь хорошей идеей для постоянных значений, таких как int или строки, заключается в том, что только при использовании синтаксиса <list>*<number>
используется только мелкая копия, и, таким образом, если вы сделали что-то вроде [{}]*100
, вы получите 100 ссылок на один и тот же словарь, поэтому изменение одного из них изменит их все. Поскольку ints и строки неизменяемы, это не проблема для них.)
Если вы хотите добавить в существующий список, вы можете использовать метод extend()
этого списка (в сочетании с созданием списка вещей, которые нужно добавить с помощью описанных выше методов):
a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]