software - python tutorial pdf




पायथन प्रारूप टैब्यूलर आउटपुट (4)

इस प्रश्न का उत्तर यहां दिया गया है:

Python2.7 का उपयोग करके, मैं टैब्यूलर डेटा स्क्रीन पर प्रिंट करने की कोशिश कर रहा हूं।

यह मोटे तौर पर मेरा कोड कैसा दिखता है:

for i in mylist:
   print "{}\t|{}\t|".format (i, f(i))

समस्या यह है कि, i या f(i) की लंबाई के आधार पर डेटा गठबंधन नहीं किया जाएगा।

यही वह है जो मुझे मिल रहा है:

|foo |bar |
|foobo   |foobar  |

मैं क्या प्राप्त करना चाहता हूं:

|foo     |bar     |
|foobo   |foobar  |

क्या कोई मॉड्यूल है जो ऐसा करने की अनुमति देता है?


अधिक सुंदर तालिका के लिए सारणी मॉड्यूल का उपयोग करें:

टैबलेट लिंक करें

यहां एक उदाहरण की सूचना दी गई है:

>>> from tabulate import tabulate

>>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6],
...          ["Moon",1737,73.5],["Mars",3390,641.85]]
>>> print tabulate(table)
-----  ------  -------------
Sun    696000     1.9891e+09
Earth    6371  5973.6
Moon     1737    73.5
Mars     3390   641.85
-----  ------  -------------

अपने स्वयं के स्वरूपण समारोह को रोल करना वाकई मुश्किल नहीं है:

def print_table(table):
    col_width = [max(len(x) for x in col) for col in zip(*table)]
    for line in table:
        print "| " + " | ".join("{:{}}".format(x, col_width[i])
                                for i, x in enumerate(line)) + " |"

table = [(str(x), str(f(x))) for x in mylist]
print_table(table)


ऐसा लगता है कि आप अपने कॉलम को बाएं- ljust करना चाहते हैं, लेकिन मैंने कोई जवाब नहीं देखा है जो कि ljust स्ट्रिंग विधि का उल्लेख करता है, इसलिए मैं पाइथन 2.7 में प्रदर्शित करूंगा:

def bar(item):
    return item.replace('foo','bar')

width = 20
mylist = ['foo1','foo200000','foo33','foo444']

for item in mylist:
    print "{}| {}".format(item.ljust(width),bar(item).ljust(width))

foo1                | bar1
foo200000           | bar200000
foo33               | bar33
foo444              | bar444

आपके संदर्भ के लिए, चल रही help('abc'.ljust) आपको यह देती है:

S.ljust (चौड़ाई [, fillchar]) -> स्ट्रिंग

ऐसा लगता है कि ljust विधि आपकी निर्दिष्ट चौड़ाई लेती है और उस से स्ट्रिंग की लंबाई ljust है, और कई स्ट्रिंग के साथ आपकी स्ट्रिंग के दाईं ओर पैड करती है।





python