在Python中打印没有换行符(但带空格)的列表

4 python python-2.7

我正在尝试打印列表的值而不使用换行符sys.stdout.write().它工作得很好,但唯一的问题是我想要将每个值与另一个值隔开.换句话说,而不是123,我想要1 2 3.我在网站上查找了一个解决方案,但我还没有找到涉及列表的内容.

当我添加" "sys.stdout.write(list[i]),像这样:sys.stdout.write(list[i], " ")它根本不打印.任何建议如何解决?

这是我的代码:

import random
import sys

list = []

length = input("Please enter the number of elements to be sorted: ") 
randomNums = input("Please enter the number of random integers to be created: ") 
showList = raw_input("Would you like to see the unsorted and sorted list? y/n: ")

for i in range(length):
    list.append(random.randint(1,randomNums))

if(showList == "y"):
    for i in range(length):
       sys.stdout.write(list[i], " ")
Run Code Online (Sandbox Code Playgroud)

Ale*_*lik 9

尝试

sys.stdout.write(" ".join(list))
Run Code Online (Sandbox Code Playgroud)

以上内容仅在list包含字符串时才有效.使其适用于任何列表:

sys.stdout.write(" ".join(str(x) for x in list))
Run Code Online (Sandbox Code Playgroud)

这里我们使用生成器表达式将列表中的每个项目转换为字符串.

如果您的列表很大并且您想避免为其分配整个字符串,则以下方法也将起作用:

for item in list[:-1]:
    sys.stdout.write(str(item))
    sys.stdout.write(" ")
if len(list) > 0:
    sys.stdout.write(list[-1])
Run Code Online (Sandbox Code Playgroud)

并且如其他答案中所述,不要调用您的变量list.实际上,您实际上是使用相同名称隐藏内置类型.