Установить минимальную длину списка?

1

У меня есть список на Python. Я точно не знаю, как долго это длится, но я знаю, что это менее 15 предметов.

Я хочу добавить его до 15 пунктов, добавив пустые строки для всех элементов, которые мне нужно добавить.

Есть ли эффективный способ сделать это в Python?

Я надеялся:

myarr = myarr[:15]

может работать, но это не так.

В настоящее время у меня есть:

if len(myarr) < 15:
    for i in range(15 - len(myarr)):
        myarr.append('')

Любые более компактные предложения?

  • 0
    Вы можете написать собственный класс, который действует как список с отступом.
Теги:

3 ответа

9
Лучший ответ
myarr += [""] * (15 - len(myarr))
  • 3
    +1. Это также не требует теста для len(myarr) < 15 потому что оператор * повторения возвращает пустой список для отрицательного числа повторений.
  • 0
    обратите внимание, что это работает, потому что строки неизменны.
Показать ещё 3 комментария
4

в режиме oneliner:

myarr.extend([""]* (15 - len(myarr)))
3

Использовать чистую нарезку (без вызова len):

padded = (source + [''] * MAX_LEN)[:MAX_LEN]

Если это вызывается много раз, тогда инициализируйте список ALL_EMPTY один раз в области модуля. Затем выполните:

padded = (source + ALL_EMPTY)[:MAX_LEN]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню