简体   繁体   中英

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?

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]]

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]]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM