我正在生成一个随机数字列表,但我很难弄清楚如何在没有方括号的情况下输出单行中的数字?
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()
您可以解压缩列表并使用sep
参数:
print(*generateAnswer(listofDigits), sep=' ')
print(", ".join([str(i) for i in generateAnswer(listofDigits)]))
试试这个:
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()
希望它能有所帮助!
获得方括号的原因是默认情况下list
类打印方括号。要删除括号,请使用循环或字符串。join:
>>> print(' '.join(map(str, listofDigits)))
9 2 1 8 6
>>> for i in listofDigits:
print(i, end=' ')
9 2 1 8 6
请注意,最后一个方法在末尾添加了一个空格。
请注意,在第一个方法中,需要将参数强制转换为字符串,因为只能使用join
字符串,而不能使用int。