Создайте список длины n-1 в python

У меня есть существующий список, например.

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]

len(months) будет равно 6 в этом примере.

Если бы мне нужно было создать пустой список той же длины, что и месяцы, я бы использовал:

newList = [[] for i in months]

что даст мне:

[[], [], [], [], [], []]

Я хочу создать новый пустой список, содержащий на 1 элемент меньше исходного массива. Так что длина нового массива будет len(months) - 1


person Nev Pires    schedule 20.03.2018    source источник
comment
stackoverflow.com/questions/5205575/   -  person Dennis Kuypers    schedule 21.03.2018
comment
Возможный дубликат Как получить пустой массив любого размера в python?   -  person Aran-Fey    schedule 21.03.2018
comment
newList = [[] for i in months] — это не пустой список длины 6 — это список из 6 списков. Нет такой вещи, как пустой список длины 6. Пустой список имеет длину 0. Что вы действительно пытаетесь сделать?   -  person zvone    schedule 21.03.2018
comment
newList = [[] для i в диапазоне (длина (месяцы)-1)]   -  person Liron Lavi    schedule 21.03.2018
comment
@zvone, ты прав. Я не правильно объяснил. Он создает список из 6 списков. Вместо этого я хочу создать список из 5 пустых списков. Я в основном создал список из 6, а затем в другой строке я удалил один из элементов.   -  person Nev Pires    schedule 21.03.2018
comment
Что ж, вам следует просто использовать range(len(months)-1), как предлагали другие. Но опять же, подумайте о том, что произойдет, если months будет пустым...   -  person zvone    schedule 21.03.2018


Ответы (1)


Вы можете просто удалить 1 из длины массива месяцев.

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] 
[[] for m in range(len(months)-1)]

Другим вариантом может быть использование нарезки массива и отрицательной индексации для получения первых n-1 элементов.

[[] for m in months[:-1]]
person Éttore Leandro Tognoli    schedule 20.03.2018