简体   繁体   中英

Printing lists in python without spaces

I am doing a program that changes a number in base 10 to base 7, so i did this :

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],

But if the number is 210 it prints 4 2 0 how do i get rid of the spaces

You can use join with list comprehension:

>>> l=range(5)
>>> print l
[0, 1, 2, 3, 4]
>>> ''.join(str(i) for i in l)
'01234'

Also, don't use list as a variable name since it is a built-in function.

In python 3 you can do like this :

print(*range(1,int(input())+1), sep='')

Your output will be like this if input = 4 :

1234

Take a look at sys.stdout . It's a file object, wrapping standard output. As every file it has write method, which takes string, and puts it directly to STDOUT. It also doesn't alter nor add any characters on it's own, so it's handy when you need to fully control your output.

>>> import sys
>>> for n in range(8):
...     sys.stdout.write(str(n))
01234567>>> 

Note two things

  • you have to pass string to the function.
  • you don't get newline after printing.

Also, it's handy to know that the construct you used:

for i in range (0,len(list)):
   print list[i],

is equivalent to (frankly a bit more efficient):

for i in list:
    print i,

Use list_comprehension.

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))])

Convert the list to a string, and replace the white spaces.

strings = ['hello', 'world']

print strings

>>>['hello', 'world']

print str(strings).replace(" ", "")

>>>['hello','world']

在 Python3 中执行以下操作对我有用

print(*list,sep='')

The print() function has an argument to specify the end character which by default is '\\n'. Specifying the end character as '' and printing using a loop will do what you are looking for:

n_list = [1,2,3,4,5]
for i in n_list:
    print(i, end='')

You can use below code snippet for python3

print(*list(range(1, n + 1)), sep='')
  • * will remove initial and end character like [{}]
  • sep = '' will remove the spaces between item.
s = "jay"
list = [ i for i in s ]

It you print list you will get:

['j','a','y']

new_s = "".join(list)

If you print new_s :

"jay"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM