0

I would like to multiply 2 lists of strings in python but not by values. Like this example :

elem1 = ['a', 'b']
elem2 = ['c', 'd']
final = magic_function(elem1, elem2)
>> final = [
    ['a','c'],
    ['a','d'],
    ['b','c'],
    ['b','d']
]

I tried looking at the numpy package but I can't find anything which is not multiply by scalar

3 Answers3

1

This can be done with a simple list comprehension final = [[v1, v2] for v1 in elem1 for v2 in elem2].

Jonesinator
  • 4,186
  • 2
  • 24
  • 18
1
import itertools
list(itertools.product(elem1,elem2))

By using itertools you can have the all possible combination of two lists. But it will generate list of tuples.

P.Madhukar
  • 454
  • 3
  • 12
0

Have a look at itertools

Assuming

elem1 = ['a', 'b']
elem2 = ['c', 'd']

Using list comprehension:

[(a, b) for a in elem1 for b in elem2]

Result: [[('a', 'c'), ('b', 'd')], [('a', 'd'), ('b', 'c')]]

bhansa
  • 7,282
  • 3
  • 30
  • 55