Python'da bir liste açılsın mı?


222

Ben 'açmak' burada yanlış kelime olabilir - özür dilerim çünkü bu yinelenen bir soru olduğundan eminim.

Sorum oldukça basit: bir öğe listesi bekleyen bir işlevde, bir Python liste öğesini bir hata almadan nasıl iletebilirim?

my_list = ['red', 'blue', 'orange']
function_that_needs_strings('red', 'blue', 'orange') # works!
function_that_needs_strings(my_list) # breaks!

Elbette listeyi genişletmenin ve işlevi 'red','blue','orange'toynakta geçirmenin bir yolu olmalı ?

Yanıtlar:



32

Evet *args(splat) sözdizimini kullanabilirsiniz:

function_that_needs_strings(*my_list)

nerede my_listtekrarlanabilir olabilir; Python verilen nesnenin üzerine döner ve her öğeyi işleve ayrı bir bağımsız değişken olarak kullanır.

Arama ifadesi belgelerine bakın .

İki yıldız kullanan bir anahtar kelime parametresi eşdeğeri de vardır:

kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)

ve bir işlev imzasında tümünü yakalama bağımsız değişkenlerini belirtmek için eşdeğer bir sözdizimi vardır :

def func(*args, **kw):
    # args now holds positional arguments, kw keyword arguments

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.