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

9
我需要打印排序后的整数列表,但它应该在一行中,没有列表方括号,并且末尾没有任何'\n'...
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]。

@Cut7er“没有列表方括号” - FHTMitchell
可能是Python:同一行上多个打印的重复问题。 - AntiMatterDynamite
2
@kyouma,所有排序代码与问题有何关联? - user2390182
这个回答解决了你的问题吗?在Python3中将int列表打印在单行中 - Tomerikoo
5个回答

32
你可以使用 * 将列表解包成参数传递给 print 函数,它会自动以空格为分隔符进行拆分。
print(*l)

如果你想要一个逗号,使用sep=参数

print(*l, sep=', ')

2
这只适用于Python 3.0及更高版本吗?这在Python 2.7上不起作用。 - SQA777
你到底为什么还在使用Python 2.7?!它已经超过10年了!如果你想在Python 2上做这个,你需要写from __future__ import print_function - FHTMitchell
1
有一些Python包在Python 3.0中发生了变化,这将需要进行相当大的代码更改。是的,Python 2.7已经超过10年了。在过去的10多年里,我一直在使用Python 2.7编写代码。当Python 3.0出现时,代码并没有自动升级。 - SQA777

4

使用

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

或者

print(*l, end=' ')

-1
你可以使用 join列表推导式 来实现。唯一的注意点是,列表中的项应该是字符串,而不是整数。
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)]))

-1
使用enumerate生成每个值的计数(从0开始)。要将它们在同一行上打印,您可以使用end关键字。
    for idx, val in enumerate(list_name):
         print(val, end = " ")




-1

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

listChar = ["a", "b", "c", "d"]

someChar = ""

for n in listChar:
  someChar = someChar + n

print(someChar)

Res: abcd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接