我正在尝试使用打印不带换行符的列表的值sys.stdout.write()
。它工作得很好,但唯一的问题是我想将每个值与另一个值隔开。换句话说,而不是123
, 我想1 2 3
。我在网站上寻找解决方案,但没有找到涉及列表的内容。
当我添加" "
to 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], " ")
Try
sys.stdout.write(" ".join(list))
以上仅在以下情况下才有效list
包含字符串。要使其适用于任何列表:
sys.stdout.write(" ".join(str(x) for x in list))
这里我们使用一个生成器表达式 http://www.python.org/dev/peps/pep-0289/将列表中的每个项目转换为字符串。
如果您的列表很大并且您希望避免为其分配整个字符串,则以下方法也适用:
for item in list[:-1]:
sys.stdout.write(str(item))
sys.stdout.write(" ")
if len(list) > 0:
sys.stdout.write(list[-1])
正如另一个答案中提到的,不要调用你的变量list
。实际上,您正在隐藏具有相同名称的内置类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)