Iterate over all combinations of values in multiple lists in Python
itertools.product
should do the trick.
>>> import itertools
>>> list(itertools.product([1, 5, 8], [0.5, 4]))
[(1, 0.5), (1, 4), (5, 0.5), (5, 4), (8, 0.5), (8, 4)]
Note that itertools.product
returns an iterator, so you don't need to convert it into a list if you are only going to iterate over it once.
eg.
for x in itertools.product([1, 5, 8], [0.5, 4]):
# do stuff
This can be achieved without any imports using a list comprehension. Using your example:
first = [1, 5, 8]
second = [0.5, 4]
combined = [(f,s) for f in first for s in second]
print(combined)
# [(1, 0.5), (1, 4), (5, 0.5), (5, 4), (8, 0.5), (8, 4)]