more-itertools
це бібліотека, яка включає спеціальний padded
інструмент для подібного роду проблем:
import more_itertools as mit
list(mit.padded(a, "", N))
# [1, '', '', '', '']
Крім того, more_itertools
також реалізуються рецепти itertools Python, включаючи padnone
та take
як зазначено у @kennytm, тому їх не потрібно повторно виконувати:
list(mit.take(N, mit.padnone(a)))
# [1, None, None, None, None]
Якщо ви хочете замінити None
прокладку за замовчуванням , використовуйте розуміння списку:
["" if i is None else i for i in mit.take(N, mit.padnone(a))]
# [1, '', '', '', '']