简体   繁体   中英

How can I merge a list with a nested list?

I have two lists. The first one is a simple list with one entry:

l = [hello]

The second one is a nested list, with several thousand entries

i = [[world, hi], 
     [world, hi], 
     [world, hi], 
     [world, hi]]

Now I want to insert the entry from list l into the nested lists of i like this:

i = [[hello, world, hi], 
     [hello, world, hi], 
     [hello, world, hi], 
     [hello, world, hi]]

How can I do this?

您可以使用列表理解来实现这一点

i = [l+x for x in i]

Just use the insert method on each sublist in i .

for sublist in i:
    sublist.insert(0, l[0])

If you don't want to modify i in place, and would prefer to build a new list, then

i = [[l[0], *sublist] for sublist in i]

simple: [[*l,*el] for el in i]

Output:

[['hello', 'world', 'hi'],
 ['hello', 'world', 'hi'],
 ['hello', 'world', 'hi'],
 ['hello', 'world', ' hi']]

I guess the benefits is that no matter how many elements you have in l , they will all be put in front of the stuff in i

Just add the element to the list you want

l = ["hello"]
i = [["world", "hi"], 
     ["world", "hi"], 
     ["world", "hi"], 
     ["world", "hi"]]

x = []
for y in i:
    x.append(l+y)

x

output:

[['hello', 'world', 'hi'],
 ['hello', 'world', 'hi'],
 ['hello', 'world', 'hi'],
 ['hello', 'world', 'hi']]

I believe something like this should do the trick:

l = ['hello']
i = [['world', 'hi'], 
     ['world', 'hi'], 
     ['world', 'hi'], 
     ['world', 'hi']]

for j in i:
    for k in l:
        j = j.append(k)

I'm just iterating through your list i , nesting another for loop to iterate through the simpler list l (to account for the case whereby it has multiple elements), and simply appending each entry in l to the current list in i .

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