1

I'm trying to create a new list from 2 lists using list comprehension

>>> l = ['%sdummy1', '%sdummy2']
>>> z = ['new1', 'new2']

With basic list comprehension knowledge I can get the list below

>>> x = [item % 'new1' for item in l]
['new1dummy1', 'new1dummy2']
>>>

but how can I iterate over the "z" and get the list below?

['new1dummy1', 'new1dummy2', 'new2dummy1', 'new2dummy2']
mert cihan
  • 63
  • 8

2 Answers2

5

simply with double flat list comprehension:

l = ['%sdummy1', '%sdummy2']
z = ['new1', 'new2']

result = [x % y for x in l for y in z]

result:

['new1dummy1', 'new2dummy1', 'new1dummy2', 'new2dummy2']
Jean-François Fabre
  • 137,073
  • 23
  • 153
  • 219
2

You can use multiple for _ in __ statements in a single comprehension

x = [item % tag for item in l for tag in z]
flakes
  • 21,558
  • 8
  • 41
  • 88