2012-12-15 13 views

Odpowiedz

9

Tak, użyj foo(*i):

>>> foo(*i) 
6 

Można również użyć * w definicji funkcji: def foo(*vargs) umieszcza wszystkie argumenty niż słowa kluczowe w nazwie krotki vargs. . i wykorzystanie **, dla np, def foo(**kargs) będzie umieścić wszystkie argumenty słownika słów kluczowych w nazwie kargs:

>>> def foo(*vargs, **kargs): 
     print vargs 
     print kargs 

>>> foo(1, 2, 3, a="A", b="B") 
(1, 2, 3) 
{'a': 'A', 'b': 'B'} 
3

Tak Pythonie że:

foo(*i) 

Patrz dokumentację Unpacking Argument Lists. Działa z każdą iteracją. Z dwiema gwiazdami ** działa dla dyktowanych i nazwanych argumentów.

def bar(a, b, c): 
    return a * b * c 
j = {'a': 5, 'b': 3, 'c': 2} 

bar(**j) 
4

Nazywa argument unpacking i tam operator dla niego.

foo(*i) 

Nawiasem mówiąc, działa z każdą iteracją, nie tylko z listami.

+0

+1 za zrzucenie nazwy gry. w rzeczywistości to, co pomaga google to coś dla dowolnego języka. Wielkie dzięki. –

Powiązane problemy