Python-打印不带方括号的函数中的数字列表

时间:2018-11-02 01:16:37

标签: python

我正在生成一个随机数字列表,但是我想弄清楚如何在没有方括号的情况下在一行中输出数字?

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()

4 个答案:

答案 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.samplerange

我认为这样更好:

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个字符串,而不能是整数。