[英]Printing lists in python without spaces
我正在做一個程序,將基數 10 中的數字更改為基數 7,所以我這樣做了:
num = int(raw_input(""))
mod = int(0)
list = []
while num> 0:
mod = num%7
num = num/7
list.append(mod)
list.reverse()
for i in range (0,len(list)):
print list[i],
但是如果數字是 210 它打印 4 2 0 我如何擺脫空格
您可以將 join 與列表理解結合使用:
>>> l=range(5)
>>> print l
[0, 1, 2, 3, 4]
>>> ''.join(str(i) for i in l)
'01234'
另外,不要使用list
作為變量名,因為它是一個內置函數。
在python 3中,您可以這樣做:
print(*range(1,int(input())+1), sep='')
如果 input = 4 ,您的輸出將是這樣的:
1234
看看sys.stdout
。 它是一個文件對象,包裝標准輸出。 由於每個文件都有write
方法,該方法接受字符串,並將其直接放入 STDOUT。 它本身也不會更改或添加任何字符,因此當您需要完全控制輸出時它很方便。
>>> import sys
>>> for n in range(8):
... sys.stdout.write(str(n))
01234567>>>
注意兩點
此外,知道您使用的構造很方便:
for i in range (0,len(list)):
print list[i],
相當於(坦率地說效率更高):
for i in list:
print i,
使用列表理解。
num= int(raw_input(""))
mod=int(0)
list =[]
while num> 0:
mod=num%7
num=num/7
list.append(mod)
list.reverse()
print ''.join([str(list[i]) for i in range (0,len(list))])
將列表轉換為字符串,並替換空格。
strings = ['hello', 'world']
print strings
>>>['hello', 'world']
print str(strings).replace(" ", "")
>>>['hello','world']
在 Python3 中執行以下操作對我有用
print(*list,sep='')
print() 函數有一個參數來指定結束字符,默認情況下是 '\\n'。 將結束字符指定為 '' 並使用循環打印將滿足您的要求:
n_list = [1,2,3,4,5]
for i in n_list:
print(i, end='')
您可以將以下代碼片段用於 python3
print(*list(range(1, n + 1)), sep='')
*
將刪除開頭和結尾字符,如[{}]
sep = ''
將刪除項目之間的空格。s = "jay"
list = [ i for i in s ]
如果您打印list
您將獲得:
['j','a','y']
new_s = "".join(list)
如果您打印new_s
:
“傑”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.