2012-05-08 15 views
9

मैं अपने चर को प्रारूपित करने के लिए चर का उपयोग कैसे कर सकता हूं?वैरिएबल स्वरूपण के साथ पायथन में प्रारूप स्ट्रिंग

cart = {"pinapple": 1, "towel": 4, "lube": 1} 
column_width = max(len(item) for item in items) 
for item, qty in cart.items(): 
    print "{:column_width}: {}".format(item, qty) 

> ValueError: Invalid conversion specification 

या

(...): 
    print "{:"+str(column_width)+"}: {}".format(item, qty) 

> ValueError: Single '}' encountered in format string 

मैं क्या कर सकते हैं, हालांकि, पहले स्वरूपण स्ट्रिंग का निर्माण किया जाता है और फिर उसे फ़ॉर्मेट:

(...): 
    formatter = "{:"+str(column_width)+"}: {}" 
    print formatter.format(item, qty) 

> lube : 1 
> towel : 4 
> pinapple: 1 

अनाड़ी लग रहा है फिर भी,। क्या इस तरह की स्थिति को संभालने का कोई बेहतर तरीका नहीं है?

उत्तर

15

ठीक है, समस्या पहले से ही हल किया है, यहाँ भविष्य में संदर्भ के लिए इस सवाल का जवाब है: चर नेस्ट किया जा सकता है, तो यह पूरी तरह से ठीक काम करता है:

for item, qty in cart.items(): 
    print "{0:{1}} - {2}".format(item, column_width, qty) 
+1

हाँ, यह किसी एक कारण से कि '.format()' है '%' प्रारूप स्ट्रिंग्स –

+0

@gnibbler: '% *' ठीक काम करता है – georg

+0

अफैइक '%' को बहिष्कृत माना जाता है और इसे पायथन 3 के भविष्य के संस्करणों में हटा दिया जाएगा, हालांकि अभी तक कोई वास्तविक समय सीमा घोषित नहीं की गई है। –

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