передать функции один список значений вместо нескольких аргументов?

Допустим, есть функция func(), которая принимает два аргумента, aи b. Есть ли какая-то техника в Python передать функции один список mylist, который имеет оба значения?

def myfunc(a, b):
    return a+b

myfunc([1, 2])

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

mylist = [1, 2]
a, b = mylist

myfunc(a, b)

Но что, если у вас есть списки, которые нужно передать определенным функциям, и каждый из них имеет разное количество аргументов? Можно было бы написать отдельные строки кода для каждой из его функций, чтобы распаковать списки в переменные и передать их соответствующим функциям, но если в Python есть что-то встроенное для передачи одного списка вместо отдельных значений аргументов (предварительно будучи уверенным, что list имеет соответствующее количество значений), тогда это выглядело бы намного лучше и, самое главное, потребовало бы гораздо меньше строк кода.

5
задан 16 June 2012 в 14:47
поделиться