I’m having trouble wrapping my head around a algorithm I’m try to implement. I have two lists and want to take particular combinations from the two lists.
Here’s an example.
names = 'a', 'b'
numbers = 1, 2
the output in this case would be:
[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
I might have more names than numbers, i.e. len(names) >= len(numbers)
. Here's an example with 3 names and 2 numbers:
names = 'a', 'b', 'c'
numbers = 1, 2
output:
[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
[('a', 1), ('c', 2)]
[('c', 1), ('a', 2)]
[('b', 1), ('c', 2)]
[('c', 1), ('b', 2)]
The simplest way is to use itertools.product
:
a = ["foo", "melon"]
b = [True, False]
c = list(itertools.product(a, b))
>> [("foo", True), ("foo", False), ("melon", True), ("melon", False)]