簡體   English   中英

在沒有空格的python中打印列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM