/ / अधिकतम लंबाई - पायथन, पायथन-3.x के आधार पर स्ट्रिंग स्वरूपण

अधिकतम लंबाई - पायथन, पायथन-3.x के आधार पर स्ट्रिंग स्वरूपण

longest = len(max(l))
for col1, col2, col3 in zip(l[::3],l[1::3],l[2::3]):
print("{:^20}|{:^20}|{:^20}".format(col1,col2,col3))

मैं कैसे उपयोग कर सकता हूँ longest के स्थान पर 20 ताकि मेरा स्वरूपण हमेशा फिट रहेगा? मैं नहीं चाहता कि मेरा कोड बदसूरत लग रहा हो, इसलिए यदि संभव हो, तो स्वरूपण या किसी अन्य तरीके का उपयोग करें।

उत्तर:

उत्तर № 1 के लिए 4

आप प्रारूप में सीधे चौड़ाई पास कर सकते हैं:

for cols in zip(l[::3],l[1::3],l[2::3]):
print("{:^{width}}|{:^{width}}|{:^{width}}".format(*cols,width=longest))

(उद्धृत एक उदाहरण से अनुकूलित प्रलेखन)

और आपको मैन्युअल रूप से कॉलम अनपैक नहीं करना है। बस उन्हें अनपैक करें * में format कहते हैं।


जवाब के लिए 3 № 2

प्रारूपों को घोंसला जा सकता है:

longest = len(max(l))
for col1, col2, col3 in zip(l[::3],l[1::3],l[2::3]):
print("{:^{len}}|{:^{len}}|{:^{len}}".format(col1,col2,col3, len=longest))

उत्तर № 3 के लिए 1

प्रयत्न:

(str(longest).join(["{:^","}|{:^","}|{:^","}"]).format(col1,col2,col3))

उत्तर के लिए 1 № 4
longest = len(max(l))

# tpl will be "{:^20}|{:^20}|{:^20}"
tpl = "{{:^{longest}}}|{{:^{longest}}}|{{:^{longest}}}".format(longest=longest)
for col1, col2, col3 in zip(l[::3],l[1::3],l[2::3]):
print(tpl.format(col1,col2,col3))

आप पहले टेम्पलेट बना सकते हैं और फिर कॉलम सम्मिलित कर सकते हैं।

यदि आप सचमुच आउटपुट में ब्रेसिज़ रखना चाहते हैं तो डबल घुंघराले ब्रेसिज़ का उपयोग किया जा सकता है:

>>> "{{ {num} }}".format(num=10)
"{ 10 }"