У меня есть список на Python. Я точно не знаю, как долго это длится, но я знаю, что это менее 15 предметов.
Я хочу добавить его до 15 пунктов, добавив пустые строки для всех элементов, которые мне нужно добавить.
Есть ли эффективный способ сделать это в Python?
Я надеялся:
myarr = myarr[:15]
может работать, но это не так.
В настоящее время у меня есть:
if len(myarr) < 15:
for i in range(15 - len(myarr)):
myarr.append('')
Любые более компактные предложения?
myarr += [""] * (15 - len(myarr))
len(myarr) < 15
потому что оператор *
повторения возвращает пустой список для отрицательного числа повторений.
в режиме oneliner:
myarr.extend([""]* (15 - len(myarr)))
Использовать чистую нарезку (без вызова len):
padded = (source + [''] * MAX_LEN)[:MAX_LEN]
Если это вызывается много раз, тогда инициализируйте список ALL_EMPTY один раз в области модуля. Затем выполните:
padded = (source + ALL_EMPTY)[:MAX_LEN]