如何让输出显示制表符而不是显示\t?
我正在尝试创建一个程序,首先让用户输入元素的数量,然后输入这些元素,最后对它们进行冒泡排序。
def bubbleSort(alist):
for passnum in range(len(alist)-1,0,-1):
for i in range(passnum):
if alist[i]>alist[i+1]:
temp = alist[i]
alist[i] = alist[i+1]
alist[i+1] = temp
ntimes = raw_input("Enter the number of lines \n")
ntimes = int(ntimes)
alist = []
while (ntimes > 0):
ntimes -= 1
alist.append(raw_input('Enter the list to sort \n'))
bubbleSort(alist)
print (alist)
我的代码运行得很好,但如果输入中包含制表符,输出却显示为\t
。我该如何让我的代码显示制表符?还有,怎么让输出中的每个值都显示在单独的一行呢?
1 个回答
2
将列表中的元素用换行符分开打印:
print '\n'.join(alist)
或者,如果你使用的是 print()
函数(在Python 3中,或者在使用 from __future__ import print_function
之后),可以把它们作为单独的参数传给 print()
:
print(*alist, sep='\n')
在 alist
前面的 *
符号告诉Python把列表中的值分开,并作为单独的参数传递,就像你调用 print(alist[0], alist[1], ..., alist[n])
一样。sep
参数则告诉Python在这些参数之间使用换行符。
因为这样会分别打印每个参数,所以 print()
会对每个参数使用 str()
,而不是让列表的表示使用 repr()
。
示例:
>>> alist = ['\tfirst with tab', 'second item', 'third\titem\twith\ttabs']
>>> print alist
['\tfirst with tab', 'second item', 'third\titem\twith\ttabs']
>>> print '\n'.join(alist)
first with tab
second item
third item with tabs
>>> from __future__ import print_function
>>> print(*alist, sep='\n')
first with tab
second item
third item with tabs