Search code examples
pythonlistlist-manipulation

Some built-in to pad a list in python


I have a list of size < N and I want to pad it up to the size N with a value.

Certainly, I can use something like the following, but I feel that there should be something I missed:

>>> N = 5
>>> a = [1]
>>> map(lambda x, y: y if x is None else x, a, ['']*N)
[1, '', '', '', '']

Solution

  • a += [''] * (N - len(a))
    

    or if you don't want to change a in place

    new_a = a + [''] * (N - len(a))
    

    you can always create a subclass of list and call the method whatever you please

    class MyList(list):
        def ljust(self, n, fillvalue=''):
            return self + [fillvalue] * (n - len(self))
    
    a = MyList(['1'])
    b = a.ljust(5, '')