Home > Software engineering >  How to pass to a function that takes two arguments an element from one list together with each eleme
How to pass to a function that takes two arguments an element from one list together with each eleme

Time:04-28

I am new to Python and I need help with following. I do have a list a = [range(1, 50, 10)] and another list b = [2, 4, 5, 8, 12, 34] Now, I have a function that calculates something, let's call it "SomeFunction", that takes two arguments. I want to pass to this SomeFunction for element from list a each element of list b. So, I want values for: SomeFunction(1, 2), SomeFunction(1, 4), SomeFunction(1, 5), ..... SomeFunction(50, 2), SomeFunction(50, 4), SomeFunction(50, 5), etc.

I think it should be done somehow with for loops, but I do not know how...

CodePudding user response:

You'd need a nested for loop:

a = range(1, 50, 10)
b = [2, 4, 5, 8, 12, 34] 

for aval in a:
    for bval in b:
        print(aval, bval)  # or any other function call

This just goes through all values in b for each value in a. (Note that you don't want range inside square brackets as you have in your question, I removed those).

A more advanced version: "all pairs of values" is also known as the Cartesian product, which is provided by the itertools module. Thus you could write

from itertools import product

for aval, bval in product(a, b):
    print(aval, bval)

CodePudding user response:

Try this:

a = range(1, 50, 10)
b = [2, 4, 5, 8, 12, 34]
for i in a:
    for n in b:
        print(SomeFunction(i, n))
  • Related