2009-02-11 7 views
24

पर खिलाए जाने के लिए तर्कों का एक टुपल लौटाएं, वर्तमान में, मैं स्ट्रिंग फॉर्मेटर में प्लग करने के लिए शून्य, एक या दो तारों की सूची लौटने के लिए पायथन में एक विधि प्राप्त करने का प्रयास कर रहा हूं, और फिर उन्हें स्ट्रिंग विधि में पास करें। सीमा से बाहर टपल सूचकांक:string.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)) 

मुझे इस कोड को चलाने के लिए प्रयास करते हैं, संकलक एक IndexError देता है: मेरे कोड कुछ इस तरह लग रहा है।
.format() पर तर्क के रूप में इसे पास करने के लिए मैं अपने वापसी मूल्य को कैसे ढूढ़ूं?

उत्तर

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

आप याद कर रहे हैं केवल स्टार:: डी

+2

यह कमाल है। इस संदर्भ में * ऑपरेटर की परिभाषा क्या है? –

+12

यह टुपल को अनपैक करता है, उदाहरण के लिए "(ए, बी, सी)" से "ए, बी, सी"। –

+1

यह सिर्फ मेरे freakin 'दिन बना दिया, धन्यवाद! – erbaker

1

यह कार्ड की सामग्री नहीं, प्रिंट करने के लिए एकल प्रारूप इनपुट के रूप में "कार्ड" का उपयोग करने का प्रयास करता है।

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

स्वरूप अजगर 2.6 में% ऑपरेटर से अधिक पसंद किया जाता है इसकी शुरूआत के रूप में,: http://docs.python.org/2/library/stdtypes.html#str.format

की तरह कुछ की कोशिश करो

प्रारूप स्ट्रिंग को संशोधित करने के बजाए * - या ** के साथ एक ट्रूप के साथ टुपल को अनपैक करने के लिए यह बहुत आसान है।

संबंधित मुद्दे