没有方括号的Python 3打印列表

没有方括号的Python 3打印列表

问题描述:

我想打印一个没有括号的列表。没有方括号的Python 3打印列表

我的代码是:

import math 
bignumber = int(input("Enter a value: ")) 
listofsquares = [] 
for counter in range(bignumber): 
    squareroot = math.sqrt(counter) 
    if squareroot.is_integer(): 
     square = squareroot*squareroot 
     listofsquares.append(int(square)) 
" ".join(str(listofsquares)) 
print(listofsquares) 

我的输出是:

Enter a value: 100 
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 

我期待的。加入()摆脱括号,但它不仅摆脱了报价。这是特别奇怪的,因为之前使用它时已经删除了它们。

+0

你真的需要把你的代码和输出你的问题本身。代码图像使任何人都无法复制和粘贴代码,以便他们可以运行代码。另外,它这样做的原因是因为你没有加入列表,所以你加入了一个字符串。 –

+0

我试过了,但格式都搞砸了。它不会接受新的行或缩进。虽然我会编辑它。 –

+0

突出显示代码并按Ctrl + K. –

这是因为你打电话给str(listofsquares),它会返回一个代表listofsquares列表的字符串,即你的例子中的[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]。另外,在这种情况下," ".join(str(listofsquares))正在使用空格分隔符连接上面组成字符串的字符列表,这将导致字符串[ 0 , 1 , 4 , 9 , 1 6 , 2 5 , 3 6 , 4 9 , 6 4 , 8 1 ]

我猜你想要实现印刷与空间整除的数,您可以通过列表理解达到一个字符串:

" ".join([str(num) for num in listofsquares]) 
+2

为什么要创建另一个列表,当你可以在第一个地方追加str值?似乎比需要更多的工作 – MooingRawr

+0

这是另一个有效的选择。 –

+0

或者只是'“”.join(在listofsquares中为数字的str(num))' –