let’s say I have two lists:

lst1 = [['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]

lst2 = ['x', 'y', 'z']

And I want to combine both such that the output would look like:

output = [['ax', 'bx', 'cx'], ['ay', 'by', 'cy'], ['az', 'bz', 'cz']]

Can I do this with only list comprehension? Using `zip()`

I tried the following line of code

output = [[x + y for x,y in zip(sublist, lst2)] for sublist in lst1]

but as expected it yielded `[['ax', 'by', 'cz'], ['ax', 'by', 'cz'], ['ax', 'by', 'cz']]`

. I am trying to build on this line of code to get my desired output. but not sure where to go from here.

I am thinking that I may need to access the indices in lst2 using `enumerate()`

so that I can apply only the strings in `lst2[0]`

to the first sublist, then`lst2[1]`

to the second sublist, etc etc. Can this be done with list comprehension?

## Answer

Here is a solution you can give it a try,

lst1 = [['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']] lst2 = ['x', 'y', 'z'] print( [[ii + j for ii in i] for i, j in zip(lst1, lst2)] )

[['ax', 'bx', 'cx'], ['ay', 'by', 'cy'], ['az', 'bz', 'cz']]