繁体   English   中英

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

[英]How to print list elements in one line?

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

您可以使用*将列表解压缩以进行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 为每个值生成计数(0 索引)。 要在同一行上打印它们,可以使用end关键字

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



暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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