2011-09-08 4 views
7

में एक सूची मुद्रित करते समय प्रिंट प्रारूप को नियंत्रित करें मेरे पास a नामक फ़्लोटिंग पॉइंट नंबर वाली एक सूची है। जब मैं print a के साथ सूची मुद्रित करता हूं। मुझे परिणाम मिलते हैं।पायथन

[8.364, 0.37, 0.09300000000000003, 7.084999999999999, 0.469, 0.303, 9.469999999999999, 0.28600000000000003, 0.2290000000 000001, 9.414, 0.9860000000000001, 0.534, 2.1530000000000005]

मैं "5.3f" का प्रारूप मुद्रित करने के लिए बेहतर परिणाम प्राप्त करने के लिए सूची प्रिंटर बता सकते हैं?

[8.364, 0.37, 0.093, 7.084, 0.469, 0.303, 9.469, 0.286, 0.229, 9.414, 0.986, 0.534, 2.153]

उत्तर

15
In [4]: print ['%5.3f' % val for val in l] 
['8.364', '0.370', '0.093', '7.085', '0.469', '0.303', '9.470', '0.286', '0.229', '1.000', '9.414', '0.986', '0.534', '2.153'] 

जहां l अपनी सूची है।

संपादित करें: उद्धरण एक मुद्दा है हैं, तो आप इस्तेमाल कर सकते हैं

In [5]: print '[' + ', '.join('%5.3f' % v for v in l) + ']' 
[8.364, 0.370, 0.093, 7.085, 0.469, 0.303, 9.470, 0.286, 0.229, 1.000, 9.414, 0.986, 0.534, 2.153] 
5

आप इस नेस्टेड ढांचे में काम करने की जरूरत है, तो आप pprint मॉड्यूल में दिखना चाहिए। अधिक जानकारी के लिए pprint पर, देख

from pprint import PrettyPrinter 
class MyPrettyPrinter(PrettyPrinter): 
    def format(self, object, context, maxlevels, level): 
     if isinstance(object, float): 
      return ('%.2f' % object), True, False 
     else: 
      return PrettyPrinter.format(self, object, context, 
             maxlevels, level) 
print MyPrettyPrinter().pprint({1: [8, 1./3, [1./7]]}) 
# displays {1: [8, 0.33, [0.14]]} 

: http://docs.python.org/library/pprint.html

यदि यह महज एक फ्लैट सूची के लिए, तो aix के समाधान अच्छा है निम्नलिखित आप क्या चाहते हैं, इस संदर्भ में क्या करना चाहिए। या यदि आपको अतिरिक्त उद्धरण पसंद नहीं हैं, तो आप यह कर सकते हैं:

print '[%s]' % ', '.join('%.3f' % val for val in list)