如何在一行中打印列表元素?



我需要打印整数的排序列表,但它应该在一行中,没有列表方括号,最后没有任何''...

import random
n = int(input(""))
l=[]
for i in range(n):
x = int(input())
l.append(x)
not_sorted = True
while not_sorted:    
x = random.randint(0,n-1)
y = random.randint(0,n-1)
while x==y:
y = random.randint(0,n-1)
if x>y:
if l[x]<l[y]:
(l[x],l[y])=(l[y],l[x])
if x<y:
if l[x]>l[y]:
(l[x],l[y])=(l[y],l[x])
for i in range(0,n-1):
if l[i]>l[i+1]:
break
else:
not_sorted = False
for i in range(n):
print(l[i])

输出应该是这样的::: 1 2 3 4 5 而不是这样 :::: [1,2,3,4,5]

您可以使用*将列表解压缩为print,该列表将自动按空格拆分

print(*l)

如果需要逗号,请使用sep=参数

print(*l, sep=', ')

使用

for i in range(n):
print(l[i], end=' ')

print(*l, end=' ')

您可以使用联接和列表推导式。 唯一的事情,列表中的项目应该是字符串,而不是整数

import random
n = int(input(""))
l = []
for i in range(n):
x = int(input())
l.append(x)
not_sorted = True
while not_sorted:    
x = random.randint(0, n-1)
y = random.randint(0, n-1)
while x == y:
y = random.randint(0, n-1)
if x > y:
if l[x] < l[y]:
(l[x], l[y]) = (l[y], l[x])
if x < y:
if l[x] > l[y]:
(l[x], l[y]) = (l[y], l[x])
for i in range(0, n-1):
if l[i] > l[i+1]:
break
else:
not_sorted = False
print(', '.join([str(l[i]) for i in range(n)]))

对于字符串列表,我是这样做的....

listChar = ["a", "b", "c", "d"]
someChar = ""
for n in listChar:
someChar = someChar + n
print(someChar)
Res: abcd

使用 enumerate 为每个值生成 count(0-indexed(。要在同一行上打印它们,可以使用end关键字

for idx, val in enumerate(list_name):
print(val, end = " ")

最新更新