Diciamo che c'è una funzione func()
che accetta due argomenti, a
e b
. Esiste un qualche tipo di tecnica in Python per passare una singola lista mylist
che ha invece entrambi i valori sulla funzione?passando una lista di valori invece di argomenti mutiple a una funzione?
def myfunc(a, b):
return a+b
myfunc([1, 2])
Se uno era del tutto sicuro che lui era sempre chiamando la stessa funzione e sapeva quanti argomenti ci vuole, si potrebbe fare qualcosa di simile:
mylist = [1, 2]
a, b = mylist
myfunc(a, b)
Ma cosa succede se si dispone di elenchi di cui avete bisogno alimentare alcune funzioni e ognuna ha una quantità diversa di argomenti? Si potrebbero scrivere righe di codice separate per ciascuna delle sue funzioni per decomprimere le liste in variabili e passarle alle funzioni corrispondenti, ma se Python ha qualcosa di built-in per passare una singola lista invece dei singoli valori degli argomenti (quando si è sicuri in anticipo quella lista ha la quantità corrispondente di valori), quindi sarebbe molto meglio e, soprattutto, richiederebbe molto meno linee di codice.
sapevo Python sarebbe qualcosa di simile! –
@ user975135 Questo può essere fatto anche con dicts, che è utile per argomenti di parole chiave o funzioni di chiamata con molti argomenti: 'mydict = {'a': 1, 'b': 2}' 'myfunc (** mydict)' – Darthfett