Pythonで作成したリストの出力をメモ帳で配布するにはどうすればよいですか?

Nov 20 2020

IDEが数値のシーケンスを保持できなかったために発生していた問題を解決しようとしていました。これは、そのように機能する範囲関数の原因です。

そして、私はそれについて以前の質問をしたので、これは質問のフォローアップです。これが前の質問に対する私のリストコメントです。

私は実際に線を追加していくつかの調整を行いました。'My_list = list(range(100))コードを適用する前に、実際に機能するようにします。ただし、回答はコンマなしで結合されます。たとえば、10は「0,1,2,3,4,5、..... 8,9」ではなく「0123456789」を実行します。助言がありますか?

私はこの質問を投稿して、他の質問が文脈から外れないようにすることにしました(私がアドバイスされたように)。

助言がありますか?

回答

JorgeGuimaraes Nov 22 2020 at 15:58

Pythonで文字列がどのように機能するかを理解する必要があります。

文字列は、閉じたバケットに保持される定数(リテラル)です。で公式ドキュメントあなたは「文字列はUnicodeコードポイントの不変配列である」ことを見つけることができます。

ただし、プログラマーはプログラム可能な方法でテキストを変更または操作する必要があります。あなたの場合あなたが望む:

"[x1] [space] [comma] [x2] [comma] ... [xn] [space] [comma]"ここで、 "xn"は数値で、 "、"は定数です。

これを実現するために、プログラム可能な方法で、プログラマーは「マスク」を使用して、変更を配置する場所をソフトウェアに指示できます。文字列形式の演算子を使用できます。

"%d , %f" %(my_first_integer, my_float)
[0][1][2][3][4][\0]
# Hey Python, return a string, using the above template, 
# but place useful stuff where you find magic keywords.

つまり:

  • 6ポジションシーケンスを作成します。
  • [0]に、int変換された型のmy_integerをchr;に配置します。
  • [1]で、「」をコピーします。
  • [2]で、「、」をコピーします。
  • [3]で、「」をコピーします。
  • [4]に、float変換された型のmy_floatをchr;に配置します。
  • [5]に、文字列が終わるように「\ 0」を配置します。(Pythonに自動的に配置されます)

これを行うには他の方法があります。つまり、文字列オブジェクトには、formatこの構造を処理するために呼び出される便利なメソッドがあります。

my_integer = 2
my_string = "{0}*pi = {1}".format(my_integer, my_integer*3.14)
print(my_string)

# 2*pi = 6.28

プログラマーは、1つまたは別の戦略を使用して同じ最終結果を達成します。

Pythonや他の言語では、特定のメソッドや演算子を使用して、文字列の結合、連結、サブ文字列の取得などを行うことができます。

読みやすさを保つために、おそらく(私は推測しますが)各値を1行に配置したいと思うでしょう。文字列では\n、新しい行のように特殊文字を使用できます。

my_list = list(range(100))

# ... useful code here and there ...

with open("output.txt", "w") as o:
    o.write("My list:\n")
    o.write("\tSize: {0}\n\n".format(len(my_list)))
    o.write("\t----start----\n")
    for i in range(len(my_list)):
        o.write("%d\n" % my_list[i])
    o.write("\n\t----end----\n")

# That writes:
# My list:
#     Size: 100
#
#     ----start----
# 0
# 1
# 2
# 3
...
# 99
#
#    ----end----

これは包括的なガイドではなく、素人のガイドであることを忘れないでください。Pythonの本やコースにあるような退屈な言葉や技術的な詳細はスキップします。

molfo Nov 20 2020 at 19:57

各番号を印刷した後、カンマを挿入する必要があります。

my_list = list(range(100))

with open("output.txt", "w") as o:
    for i in range(len(my_list)):
        o.write("%d," % my_list[i]) # Here, after '%d' you can place a comma, or any text you want