在新行上打印列表元素

时间:2015-06-07 22:21:31

标签: python list python-2.7

我希望打印数组的元素,不带逗号,并在不同的行上。我正在编写插入排序函数。虽然它工作正常,但我发现正确打印它们很棘手。我写的代码是:

#!/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查看详细的问题陈述。

2 个答案:

答案 0 :(得分:5)

print语句会自动附加一个新行,因此如果您使用

print '\n'

你会得到两条新线。因此,您可以使用print ''中的空字符串,或者更好的方法是单独使用print

print

答案 1 :(得分: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)

编辑 - 好的! ^有人已经提到过。