Search code examples
pythonlistlist-comprehension

Appending element of one list to sub-list of another list


Suppose I have the following lists:

l1 = [['a'],['b'],['c'],['d']]
l2 = [1,2,3,4]

I want to make a new list where each element of second list would be appended to each sub-list of l1 the desired out should be:

[['a',1],['b',2],['c',3],['d',4]]

yet when I do [k for i in zip(l1, l2) for k in i], I get the following:

[['a'], 1, ['b'], 2, ['c'], 3, ['d'], 4]

which is not desired I wonder what am I doing wrong here?


Solution

  • With the nested loop, you're unpacking the sublists. You could use list concatenation instead:

    out = [i+[j] for i,j in zip(l1, l2)]
    

    Output:

    [['a', 1], ['b', 2], ['c', 3], ['d', 4]]