Передать аргументы функции в понимании списка - PullRequest
0 голосов
/ 14 апреля 2020

Рассмотрим следующий пример:

def fcn_a(x, y):
    return x + y


def fcn_b(x, y):
    return x * y


def fcn_c(x, y):
    return x / y


fcns = [fcn_a, fcn_b, fcn_c]


x = [1, 2, 3]
y = [10, 20, 30]

Мне нужно применить функции в fcns к каждой паре элементов в x и y по порядку. Примерно так:

result = []
for i in range(len(fcns)):
    result.append(fcns[i](x[i], y[i]))

# result == [11, 40, 0.1]

Как мне сделать sh это, используя понимание списка?

1 Ответ

0 голосов
/ 14 апреля 2020

вы можете использовать встроенную функцию enumerate со списком:

result = [f(x[i], y[i]) for i, f in enumerate(fcns)]

вывод:

[11, 40, 0.1]
...