2016-11-18 9 views
-4

ブラケットなしのリストを印刷しようとしています。角括弧なしの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] 

私は括弧を取り除くために.join()を期待していました、。前にこれを使用するときに削除されたため、特に奇妙です。

+0

あなたは本当にあなたの質問自体にあなたのコードと出力を配置する必要があります。コードの画像は、誰でもコードをコピーして貼り付けて実行することができません。また、その理由は、あなたがリストに参加していないので、あなたは文字列に参加しているからです。 –

+0

私はしようとしましたが、フォーマットがすべて乱されました。新しい行や字下げを受け入れません。私はそれを編集します。 –

+0

コードをハイライトし、Ctrl + Kを打つ。 –

答えて

0

これは、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のnumに対してstr(num))' –