2009-02-11 12 views
24

Şu anda, bir dizge biçimlendiricisine takılacak sıfır, bir veya iki dizenin listesini döndürmek için Python'da bir yöntem almaya çalışıyorum ve sonra onları string yöntemine ilet. aralık dışında tanımlama grubu endeksi:Beslenecek argüman dizisini döndürür.format()

class PairEvaluator(HandEvaluator): 
    def returnArbitrary(self): 
    return ('ace', 'king') 

pe = PairEvaluator() 
cards = pe.returnArbitrary() 
print('Two pair, {0}s and {1}s'.format(cards)) 

Bu kodu çalıştırmayı deneyin derleyici bir IndexError verir: My kod şöyle görünür.
.format() için bir argüman olarak iletmek için dönüş değeri nasıl yapılandırmalıyım?

cevap

59
print('Two pair, {0}s and {1}s'.format(*cards)) 

sadece yıldızın: Biçim Python 2.6 yılındaki tanıtımından itibaren% operatörü göre tercih edilir

+2

Bu harika. Bu bağlamda * operatörün tanımı nedir? –

+12

Kutuyu, örneğin "(a, b, c)" den "a, b, c" ye çıkartır. –

+1

Bu sadece düşkün günümü kutladı, teşekkürler! – erbaker

1

Bu, "kartların" kartların içeriğini değil, yazdırmak için tek biçim girdisi olarak kullanılmasını dener. Sen eksik

print('Two pair, %ss and %ss' % cards)