2010-05-04 16 views
10

मैं संख्याओं की एक सूची मुद्रित करना चाहता हूं, लेकिन मैं मुद्रित होने से पहले सूची के प्रत्येक सदस्य को प्रारूपित करना चाहता हूं। उदाहरण के लिए,किसी सूची के सभी तत्वों को प्रारूपित करें

theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 

मैं चाहता हूँ निम्नलिखित उत्पादन मुद्रित एक इनपुट के रूप में ऊपर सूची दी:

[1.34, 7.42, 6.97, 4.55] 

सूची में से किसी एक सदस्य के लिए, मैं जानता हूँ कि मैं इसे स्वरूपित कर सकते हैं

का उपयोग करके
print "%.2f" % member 

क्या कोई कमांड/फ़ंक्शन है जो पूरी सूची के लिए ऐसा कर सकता है? मैं एक लिख सकता हूं, लेकिन सोच रहा था कि कोई पहले से मौजूद है या नहीं।

उत्तर

15

आप सिर्फ संख्या मुद्रित करने के लिए चाहते हैं तो आप एक सरल पाश का उपयोग कर सकते हैं:

formattedList = ["%.2f" % member for member in theList] 

आप:

for member in theList: 
    print "%.2f" % member 

आप बाद में आप एक सूची समझ का उपयोग कर सकते के लिए परिणाम संग्रहीत करना चाहते हैं तब आउटपुट प्राप्त करने के लिए इस सूची को प्रिंट कर सकते हैं:

print formattedList 

नोट भी % को हटा दिया जा रहा है। यदि आप Python 2.6 या नए का उपयोग कर रहे हैं format का उपयोग करना पसंद करते हैं।

+0

धन्यवाद! यह भी खूब रही। मुझे अभी तक 'प्रारूप' का उपयोग करने का तरीका नहीं पता है। लेकिन सीखेंगे। – Curious2learn

3

आप सूची समझ का उपयोग कर सकते में शामिल होने और कुछ स्ट्रिंग परिवर्तन, के रूप में इस प्रकार है:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 
>>> def format(l): 
...  return "["+", ".join(["%.2f" % x for x in l])+"]" 
... 
>>> format(theList) 
'[1.34, 7.42, 6.97, 4.55]' 
2

आप अजगर 3.5.1 के लिए नक्शा समारोह

l2 = map(lambda n: "%.2f" % n, l) 
4

उपयोग कर सकते हैं, तो आप उपयोग कर सकते हैं:

>>> theList = [1.343465432, 7.423334343, 6.967997797, 4.5522577] 
>>> strFormat = len(theList) * '{:10f} ' 
>>> formattedList = strFormat.format(*theList) 
>>> print(formattedList) 

परिणाम है:

' 1.343465 7.423334 6.967998 4.552258 ' 
2

एक बहुत ही कम समाधान का उपयोग कर "" .format() और एक जनरेटर अभिव्यक्ति:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 

>>> print(['{:.2f}'.format(item) for item in theList]) 

['1.34', '7.42', '6.97', '4.55'] 
संबंधित मुद्दे