Передайте формулу в функцию / понимание списка в качестве аргумента - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть понимание списка, которое суммирует вместе значения, вычисленные в списке

sum([((x*y)*z) for ((x, y), z) in [(element["size"], element["quantity"]) for element in lst]])

, но мне бы хотелось, чтобы написанная мной функция была более общей, чтобы я мог передать вычисление, формат и переменные вчтобы функция выглядела следующим образом:

sum([calculation for format in [variables for element in lst]])

как передать вычисления и отформатировать их как переменные в функции? Можно ли это сделать?

calculation = ((x*y)*z)
format = ((x, y), z)

1 Ответ

1 голос
/ 10 ноября 2019

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

def calculation(x,y,z):
    return (x*y)*z

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

sum([calculation(x,y,z) for ((x, y), z) in [(element["size"], element["quantity"]) for element in lst]])

Как уже упоминалось в комментариях, я предлагаю прочитать о том, как использовать функции в Python:

функции в Python

того же родаидеи можно применить к любой части понимания списка, который вы пытаетесь упростить

...