2015-06-07 11 views
6

पर प्रिंट सूची तत्व मैं एक सरणी के तत्वों को बिना अल्पविराम के, और अलग-अलग पंक्तियों पर मुद्रित करना चाहता हूं। मैं सम्मिलन प्रकार के लिए एक समारोह लिख रहा हूँ। हालांकि यह सही तरीके से काम करता है, मुझे उन्हें ठीक से मुद्रित करना मुश्किल लगता है। कोड मैं लिखा है है:नई लाइन

#!/bin/python 
def insertionSort(ar):  
    newNo = ar[-1] 
    for i in range(0, m-1): 
     if(newNo < ar[m-i-1]): 
      ar[m-i] = ar[m-i-1] 
      for e in ar: 
       print e, 
      print '\n' 
    ar[m-i-1] = newNo 
    for f in ar: print f, 

m = input() 
ar = [int(i) for i in raw_input().strip().split()] 
insertionSort(ar) 

उत्पादन मैं मिलता है:

2 4 6 8 8 

2 4 6 6 8 

2 4 4 6 8 

2 3 4 6 8 

मैं चाहिए परीक्षण का मामला पारित करने के लिए कोड के लिए निम्न आउटपुट प्राप्त:

2 4 6 8 8 
2 4 6 6 8 
2 4 4 6 8 
2 3 4 6 8 

यानी लाइनों के बीच अतिरिक्त जगह के बिना। विस्तृत समस्या कथन के लिए here पर क्लिक करें।

+3

'प्रिंट '\ n'' दो नई लाइनों को मुद्रित करेगा ... एक स्पष्ट, अन्य अंतर्निहित ... –

+2

यह' sys.stdout.write' और 'print' के बीच परिभाषित अंतर है। –

उत्तर

5

print बयान इसलिए यदि आप

print '\n' 

का उपयोग आप दो नई लाइनों मिल जाएगा, स्वचालित रूप से एक नई रेखा भी संलग्न। तो तुम print '' में के रूप में एक खाली स्ट्रिंग का उपयोग कर सकते या बेहतर तरीका अपने आप में print उपयोग करने के लिए होगा:

print 
+3

'प्रिंट' स्वयं ही ठीक है ... :) –

+0

धन्यवाद। मैंने कहा कि! :) –

1

यह एक ठीक हो सकता है -

def insertionSort(ar):  
newNo = ar[-1] 
for i in range(0, m-1): 
    if(newNo < ar[m-i-1]): 
     ar[m-i] = ar[m-i-1] 
     for e in ar: 
      print e, 
     print 
ar[m-i-1] = newNo 
for f in ar: print f, 

m = input() 
ar = [int(i) for i in raw_input().strip().split()] 
insertionSort(ar) 

संपादित करें - ठीक है!^किसी ने पहले से ही इसका उल्लेख किया है।