Simple cartesian product
Magnus L. Hetland
mlh at vier.idi.ntnu.no
Tue Jan 4 18:06:48 EST 2000
More information about the Python-list mailing list
Tue Jan 4 18:06:48 EST 2000
- Previous message (by thread): Simple cartesian product
- Next message (by thread): Simple cartesian product
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
mlh at vier.idi.ntnu.no (Magnus L. Hetland) writes: > Just wondered if anyone had a simple and elegant little snippet that > returns the cartesian products of two lists... for-loops and append is > a simple solution, but not very "cool" ;) > > I have a *nearly* finished function: > > def product(a,b): > a = > b = b * len(a) > return map(None, a, b) > > What I'm missing here is a simple expression which will make a list > like [1, 2, 3, 4] into [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4] (if > len(b)==3)... Hm... A possible solution: def product(a,b): a = reduce(lambda l, x: l + [x]*len(b), [[]] + a) b = b * len(a) return map(None, a, b) However, this is a bit too obfuscated for my taste... > > (Of course, all of this is a breeze with list comprehension ;) > -- Magnus Lie Hetland
- Previous message (by thread): Simple cartesian product
- Next message (by thread): Simple cartesian product
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list