Как создать несколько пустых вложенных списков в python

Я хочу иметь переменную, которая представляет собой вложенный список из нескольких пустых списков, которые я могу заполнить позже. Что-то похожее:

my_variable=[[], [], [], []] 

Тем не менее, я не знаю заранее, сколько списков мне нужно, только на этапе создания, поэтому мне нужна переменная a чтобы определить ее. Я думал о простой my_variable=[[]]*a , но это создает копии списков, и это не то, что я хочу иметь.

Я мог бы сделать:

 my_variable=[] for x in range(a): my_variable.append([]) 

но я ищу более элегантное решение (желательно однострочное). Есть ли?

2 Solutions collect form web for “Как создать несколько пустых вложенных списков в python”

Попробуйте составить список :

 lst = [[] for _ in xrange(a)] 

Смотри ниже:

 >>> a = 3 >>> lst = [[] for _ in xrange(a)] >>> lst [[], [], []] >>> a = 10 >>> lst = [[] for _ in xrange(a)] >>> lst [[], [], [], [], [], [], [], [], [], []] >>> # This is to prove that each of the lists in lst is unique >>> lst[0].append(1) >>> lst [[1], [], [], [], [], [], [], [], [], []] >>> 

Обратите внимание, однако, что выше для Python 2.x. На Python 3.x., так как xrange был удален, вам понадобится следующее:

 lst = [[] for _ in range(a)] 
 >>>[[] for x in range(10)] #To make a list of n different lists, do this: [[], [], [], [], [], [], [], [], [], []] 

Редактировать :-

 [[]]*10 

Это даст вам тот же результат, что и выше, но список не является отдельным экземпляром, это всего лишь n ссылок на один и тот же экземпляр.

    Python - лучший язык программирования в мире.