我正在生成一个随机数字列表,但是我想弄清楚如何在没有方括号的情况下在一行中输出数字?
import random
def generateAnswer(answerList):
listofDigits = []
while len(listofDigits) < 5:
digit = random.randint(1, 9)
if digit not in listofDigits:
listofDigits.append(digit)
return listofDigits
def main():
listofDigits = []
print(generateAnswer(listofDigits))
main()
答案 0 :(得分:4)
print(", ".join([str(i) for i in generateAnswer(listofDigits)]))
答案 1 :(得分:4)
您可以解压缩列表并使用sep
参数:
print(*generateAnswer(listofDigits), sep=' ')
答案 2 :(得分:3)
尝试一下:
listofDigits = []
print(str(generateAnswer(listofDigits))[1:-1])
此外,如果generateAnswer
初始化并返回列表,则无需传递空列表。另一件事是,如果要生成非重复的随机列表,则可以使用random.sample
和range
。
我认为这样更好:
import random
def generateAnswer():
return random.sample(range(1, 10), 5)
def main():
print(str(generateAnswer())[1:-1])
main()
希望有帮助!
答案 3 :(得分:1)
获得括号的原因是因为list
类默认情况下会打印括号。要除去括号,请使用循环或string.join:
>>> print(' '.join(map(str, listofDigits)))
9 2 1 8 6
>>> for i in listofDigits:
print(i, end=' ')
9 2 1 8 6
请注意,最后一种方法在末尾添加了一个空格。
请注意,在第一种方法中,必须将参数强制转换为字符串,因为您只能join
个字符串,而不能是整数。