如何将一个列表中的元素与另一个列表中的每个元素一起传递给接受两个参数的函数?

How to pass to a function that takes two arguments an element from one list together with each element of another list?

我是 Python 的新手,我需要以下方面的帮助。 我有一个列表 a = [range(1, 50, 10)] 和另一个列表 b = [2, 4, 5, 8, 12, 34] 现在,我有一个计算某些东西的函数,我们称它为“SomeFunction”,它有两个参数。 我想将列表 a 中列表 b 中每个元素的元素传递给此 SomeFunction。所以,我想要以下值:SomeFunction(1, 2), SomeFunction(1, 4), SomeFunction(1, 5), ..... SomeFunction(50, 2), SomeFunction(50, 4), SomeFunction(50 , 5), 等等

我认为应该用 for 循环以某种方式完成,但我不知道如何...

你需要一个嵌套的 for 循环:

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

这只是针对 a 中的每个值遍历 b 中的所有值。 (请注意,您不希望 range 像您在问题中那样在方括号内,我删除了它们)。

更高级的版本:“所有值对”也称为笛卡尔积,由itertools模块提供。因此你可以写

from itertools import product

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

试试这个:

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