Wie kann ich die Ausgabe einer Liste, die ich in Python erstellt habe, in meinem Notizblock verteilen?

Nov 20 2020

Ich habe versucht, ein Problem zu lösen, das vor sich ging, weil meine IDE aufgrund der so funktionierenden Bereichsfunktion keine Zahlenfolge beibehalten konnte.

Und ich habe eine vorherige Frage dazu gestellt, damit dies eine Fortsetzung der Frage ist. Hier ist mein Listenkommentar zur vorherigen Frage.

Ich habe tatsächlich einige Anpassungen vorgenommen, indem ich eine Zeile hinzugefügt habe. 'My_list = list (range (100)), bevor Sie Ihren Code anwenden, damit er tatsächlich funktioniert. Aber es kombiniert die Antworten ohne Komma, zum Beispiel 10 macht dies '0123456789' anstelle von '0,1,2,3,4,5, ..... 8,9'. irgendwelche Vorschläge?

Ich habe beschlossen, diese Frage zu posten, damit die andere Frage nicht aus dem Zusammenhang gerät (wie mir empfohlen wurde).

Irgendwelche Vorschläge?

Antworten

JorgeGuimaraes Nov 22 2020 at 15:58

Sie müssen verstehen, wie Zeichenfolgen in Python funktionieren.

Strings sind Konstanten (Literale), die in einem geschlossenen Eimer aufbewahrt werden. In offiziellen Dokumenten finden Sie, dass "Strings unveränderliche Sequenzen von Unicode-Codepunkten sind".

Programmierer müssen jedoch Text auf programmierbare Weise ändern oder bearbeiten. In Ihrem Fall möchten Sie:

"[x1] [Leerzeichen] [Komma] [x2] [Komma] ... [xn] [Leerzeichen] [Komma]" wobei "xn" eine Zahl und "," konstant ist.

Um dies zu erreichen, können Programmierer auf programmierbare Weise "Masken" verwenden, um der Software mitzuteilen, wo sie ihre Änderungen platzieren möchten. Man kann String-Format-Operatoren verwenden :

"%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.

Was bedeutet:

  • Erstellen Sie eine Sequenz mit 6 Positionen.
  • Platzieren Sie in [0] my_integer vom Typ intkonvertiert in chr;
  • Kopieren Sie in [1] "";
  • Kopieren Sie in [2] ",".
  • Kopieren Sie in [3] "";
  • Platzieren Sie in [4] my_float vom Typ floatkonvertiert in chr;
  • Platzieren Sie in [5] "\ 0", damit die Zeichenfolge beendet ist. (Automatisch in Python platziert)

Es gibt andere Möglichkeiten, dies zu tun, dh das String-Objekt verfügt über eine praktische Methode, die aufgerufen wird format, um diese Konstruktion zu handhaben:

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

# 2*pi = 6.28

Der Programmierer erzielt mit der einen oder anderen Strategie das gleiche Endergebnis.

Sowohl in Python als auch in anderen Sprachen kann man Zeichenfolgen kombinieren, verketten, Unterzeichenfolgen abrufen usw. unter Verwendung bestimmter Methoden und / oder Operatoren.

Um die Lesbarkeit zu gewährleisten, möchten Sie vielleicht (glaube ich) jeden Wert in eine Zeile einfügen. In Zeichenfolgen können Sie Sonderzeichen wie \nfür neue Zeilen verwenden .

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

Denken Sie daran, dies ist kein umfassender Leitfaden, sondern ein Leitfaden für Laien. Ich überspringe viele langweilige Wörter und technische Details, die Sie besser in Python-Büchern und -Kursen finden.

molfo Nov 20 2020 at 19:57

Sie müssen nur ein Komma einfügen, nachdem Sie jede Zahl gedruckt haben:

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