Hallo, alle zusammen, ist Eiringu.
Dieser Artikel ist ein Studienmemorandum von Fluent Python. Es wird von Zeit zu Zeit aktualisiert.
Um ehrlich zu sein, lese ich Lehrbücher über Programmiersprachen nicht oft ernsthaft, aber wenn ich ein Buch lese, das eine Sprache richtig erklärt, habe ich die richtigen Codierungsfähigkeiten und Entdeckungen, im Gegensatz zu dem, was ich in der Praxis ad hoc erworben habe. .. Daher möchte ich notieren, woran ich mit Fluent Python interessiert war.
** S.8 Fußnote **
In Python 2 müssen Sie "FrenchDeck (Objekt)" explizit schreiben, in Python 3 ist dies jedoch die Standardeinstellung.
...Was...!?
P.45
2.7 list.sort und eingebaute Funktion sortiert
Die list.sort-Methode sortiert die Liste direkt und erstellt keine Kopie. Sie können an der Tatsache, dass "Keine" zurückgegeben wird, erkennen, dass Sie das Zielobjekt ändern, ohne eine neue Liste zu erstellen. (Weggelassen) Andererseits erstellt die eingebaute Funktion "sortiert" eine neue Liste und gibt sie zurück.
Hmm. Ich habe die Liste sortiert und für mich selbst gespeichert, also habe ich sie als Referenz verwendet.
2.9.1 Array
Array.array
ist effizienter als list
, wenn die Liste nur Zahlen enthält. ... (weggelassen) ... Python-Arrays sind genauso effizient wie C-Arrays. array
wird durch Angabe des Typcodes erstellt, da der Typ des im Array gespeicherten Elements vom internen C-Datentyp unterstützt wird.
Listen verwenden auch nur ungefähr den gleichen Datentyp. Daher wäre es effizienter, wenn wir Arrays verwenden würden. Ich habe so etwas wie Procon noch nicht gemacht, aber wenn Sie diesen Bereich nicht kennen, wird es nicht funktionieren.
P. 76
my_dict.setdefault(key, []).append(new_value)
Dies ist betrieblich dasselbe wie:
if key not in my_dict:
my_dict[key] = []
my_dict[key].append(new_value)
Die Methode zur Verwendung der if-Anweisung ist einfach. Seien Sie also vorsichtig.
Das Extra ist
b '\ xff \ xfe
. Dies sind ** BOM ** * (Byte-Order-Markierung) *, die die "Little-todian" -Byte-Reihenfolge der Intel-CPU darstellen, die die Codierung durchgeführt hat. ~ Ausgelassen ~ Der Standard schreibt vor, dass UTF-16BE (Big Endian) angenommen werden sollte, wenn die Datei UTF-16 ist und dort keine Stückliste vorhanden ist. Die Intel x86-Architektur ist jedoch wenig tolandisch, und es gibt viele kleine tolandische UTF-16 ohne Stückliste auf dem Markt. Endian-Probleme betreffen nur Codierungen, aus denen ein Wort mit mehreren Bytes besteht, z. B. UTF-16 und UTF-32. Einer der großen Vorteile von UTF-8 besteht darin, dass unabhängig vom Endian der Maschine dieselbe Bytefolge erzeugt wird. Keine Stückliste erforderlich. Einige Windows-Anwendungen fügen UTF-8-Dateien (insbesondere Notepad) Stücklisten hinzu. Die Erkennung von UTF-8-Dateien in Excel basiert auf Stücklisten, ohne dass Stücklisten davon ausgehen, dass der Inhalt in einer Windows-Codepage codiert ist.
Ah, wenn Sie also in Python geschriebenes csv / tsv in Excel laden, werden die Zeichen verstümmelt. Es erkennt es standardmäßig nicht als utf-8.
Recommended Posts