我正在尝试打印列表的值而不使用换行符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)
尝试
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.实际上,您实际上是使用相同名称隐藏内置类型.
| 归档时间: |
|
| 查看次数: |
7175 次 |
| 最近记录: |