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?
CodePudding user response:
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]]
CodePudding user response:
If you want to modify l1
in place:
l1 = [['a'],['b'],['c'],['d']]
l2 = [1,2,3,4]
for x,y in zip(l1, l2):
x.append(y)
output:
[['a', 1], ['b', 2], ['c', 3], ['d', 4]]