2011-11-02 10 views
5

* या ** ऑपरेटरों के भिन्न रूप से काम करने के, दुर्भाग्य से नहीं है:पायथन - स्ट्रिंग स्वरूपण ऑपरेटर के लिए सूची को अनपैक करने का संक्षिप्त तरीका?

lstData = [1,2,3,4] 
str = 'The %s are %d, %d, %d, and %d' % ('numbers', *lstData) 

वहाँ एक आसान तरीका है?

उत्तर

7

उपयोग format:

str = 'The {} are {}, {}, {}, and {}'.format('numbers', *lstData) 

संभव स्वरूपण (तैरता है, दशमलव अंक, रूपांतरण, ..) के बारे में अधिक जानकारी के लिए दस्तावेज़ देख सकेंगे।

+0

आपने दस्तावेज़ों के लिए एक लिंक शामिल किया है। आपका लक्ष्य और सत्य है। –

+0

कोई विचार क्यों अनुक्रम अनपॅकिंग केवल दूसरे तर्क के लिए काम करता है? हस्ताक्षर 'प्रारूप (स्थितित्मक, * तर्क, * kwargs)' है? यदि आप इसे पास कर सकते हैं तो यह अधिक शक्तिशाली होगा '(* seq1, * seq2, * ...) '। जावास्क्रिप्ट ES6 इसका समर्थन करता है: 'Math.min (... [... seq1, ... seq2]) '। – CoDEmanX

2
s = 'The %s are %d, %d, %d, and %d' % tuple(['numbers'] + lstData) 
1
>>> data = range(5) 
>>> 'The {0} are {1}, {2}, {3}, {4} and {5}'.format('numbers', *data) 
'The numbers are 0, 1, 2, 3 and 4' 
संबंधित मुद्दे