Eine erfrischende Geschichte über Slice in Python

Beschwerden bei der Schnittverarbeitung

Das ist das Obige: Eine Geschichte über Slice in Python

Vielleicht haben die meisten Programmierer die Idee, Index als Index anzugeben, wenn sie ein Element aus einem Array extrahieren möchten.

        +++++++++++++++++++++++++++++++++++++
element + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 
        +++++++++++++++++++++++++++++++++++++
index   + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 +

Wenn Sie das 7. Element eines Arrays extrahieren möchten, finden es nur wenige Programmierer seltsam, den folgenden Code und die folgenden Ergebnisse zu erhalten.

l=[1,2,3,4,5,6,7,8,9]
print(l[6])
7

Selbst wenn eine Slice-Operation für ein Array ausgeführt wird, wird daher natürlich versucht, den Bereich mit Index anzugeben.

l=[1,2,3,4,5,6,7,8,9]
print(l[6:7])
[7]

oh ... Ich wollte Index 6-7 angeben, also ist das erwartete Ergebnis

[7,8]

Die Realität war jedoch rücksichtslos.

Die wahre Natur des Gefühls der Inkongruenz

Zusammenfassend war es Länge, nicht Index, die ein Array-Index in der Slice-Verarbeitung sein sollte.

        +++++++++++++++++++++++++++++++++++++
element + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 
        +++++++++++++++++++++++++++++++++++++
length  0___1___2___3___4___5___6___7___8___9
l=[1,2,3,4,5,6,7,8,9]
print(l[6:7])
[7]

Wenn Sie das Längendiagramm und den Prozess vergleichen und in Ihrem Gehirn ersetzen, dass der Index Länge anstelle von Index ist, wird das Element zwischen den Längen 6 bis 7 erfasst, sodass das Ausgabeergebnis nicht unangenehm wird. Es war erfrischend.

Aber warum Länge?

Ich weiß es nicht. Das Festlegen der Länge und das Erfassen des Bereichs des Index wie die Bereichsfunktion ist sicherlich intuitiv und bequem, aber dennoch mischt der Indexstandard die Indexnotation basierend auf der Länge auch für die Indizes des Mainstream-Arrays. Ich wusste nicht, was der große Grund war.

Tatsächlich ist es einfach, die (?) Anordnungsoperation unter Verwendung von Länge zu verstehen

Ich war negativ in Bezug auf die Verwendung von Length als Index für ein Array oben, aber tatsächlich hätte jeder (wahrscheinlich) versuchen sollen, Length als Index zu verwenden.

Als ich klein war, habe ich ein neues Jahr begonnen und Delphi 2.0 und das erste Delphi-ähnliche Nachschlagewerk in meiner Nachbarschaft Laox gekauft (ich weiß nicht, warum ich Delphi gewählt habe, es ist wahrscheinlich die billigste GUI-Programmiersprache. Deshalb), als ich triumphierend anfing, das Programm zu studieren. Während ich mir das Beispiel-Nachschlagewerk ansah, schrieb ich den Code, wiederholte Fehler und Korrekturen und näherte mich der Array-Seite.

Referenz "Um das erste Element des Arrays abzurufen, geben Sie 0 als Index an." Ich warum?"

Zu dieser Zeit konnte niemand um mich herum diese Frage beantworten, und ich prägte sie widerstrebend wie einen Fluch in mein Bewusstsein ein, 0 als ich das erste Element nehmen wollte und 1 als ich das nächste Element nehmen wollte.

Wenn Sie sich mit Programmieren überhaupt nicht auskennen, können Sie das Unbehagen, das ich diesmal hatte, akzeptieren, ohne sich überhaupt unwohl zu fühlen. Wenn eine Sprache zum Mainstream wurde, in der alle Array-Operationen auf Längenbasis ausgeführt wurden,

Referenz "Um das erste Element des Arrays abzurufen, geben Sie 1 als Index an." Ich "ich verstehe"

Es kann eine solche Welt geben.

damit

Zusammenfassend verstehe ich nicht, aber ich verstehe es, es war nicht sehr erfrischend.

Selbst wenn es zum Mainstream der Welt wird, Array-Operationen basierend auf Länge durchzuführen, wird dies ein Problem sein, und ich hoffe, dass die Indizes von Arrays weiterhin so weit wie möglich basierend auf Index vereinheitlicht werden. Ich werde es beenden.

Recommended Posts

Eine erfrischende Geschichte über Slice in Python
Eine launische Geschichte über Slice in Python
Die Geschichte der Verwendung von Python reduziert
Eine Geschichte über einen magischen Umbau, der Lubuntu in ein Chromebook bringt
Eine Geschichte über maschinelles Lernen mit Kyasuket
Eine Geschichte über Python Pop und Append
Eine Geschichte über den Betrieb einer GCP-Instanz von Discord
Eine Geschichte, die von Go's globalen Variablen und ihrem Umfang abhängig ist
Die Geschichte, Artikel-verknüpfte Anzeigen auf Jubatus anzeigen zu wollen
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Eine Geschichte über das Ändern von Python und das Hinzufügen von Funktionen
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Flucht aus Pythons virtueller Umgebung ~ Eine Geschichte über das Fangen in einer von mir erstellten virtuellen Umgebung ~
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Die Geschichte der Migration der gesamten Linux-Festplatte über SSH
Ein Memorandum über Nan.
Die Geschichte, mit Python eine Hanon-ähnliche Partitur zu machen
Eine Geschichte über das Ausprobieren eines (Golang +) Python-Monorepo mit Bazel
Eine Geschichte über Kindergärten, Kindergärten und Kindergärten
Eine Geschichte, die die Discord-Aktivität im Slack-Status widerspiegelt
Ein Hinweis zu __call__
Eine Geschichte über das Problem, 3 Millionen ID-Daten in einer Schleife zu verarbeiten
Die Geschichte, wie theano mit TSUBAME 2.0 verwaltet wurde
Ein Hinweis zum Unterprozess
Eine Geschichte über die Änderung des Master-Namens von BlueZ
Ein Hinweis zu mprotect (2)
Eine Geschichte über einen Linux-Anfänger, der in einer Woche LPIC101 bestanden hat
Eine Geschichte über einen Linux-Anfänger, der Linux auf ein Windows-Tablet bringt
Eine Geschichte über das Stolpern durch PATH nach der Installation von Anaconda
Eine Geschichte über das Erstellen eines UNIX / Linux-kompatiblen Betriebssystems von Grund auf neu
Eine Geschichte darüber, wie man einen relativen Pfad in Python angibt.
Eine Geschichte über den Wettbewerb mit einem Freund in Othello AI Preparation
Eine Geschichte über die Installation von matplotlib mit pip mit einem Fehler
Eine etwas tiefere Geschichte über Blockchain, die die digitale Welt ankreuzt
Eine Geschichte über einen Amateur, der mit Python (Kivy) einen Blockbruch macht ②
Eine Geschichte über den Umgang mit dem CORS-Problem
Eine Geschichte über einen Amateur, der mit Python (Kivy) einen Blockbruch macht ①
Eine Geschichte über einen Krieg, als zwei Neuankömmlinge eine App entwickelten
Eine Geschichte über das zufällige Erstellen eines kurzen Songs mit Sudachi Py
Eine Geschichte über das Clustering von Zeitreihendaten des Austauschs
Eine Geschichte über einen 40-jährigen Ingenieurmanager, der "Deep Learning for ENGINEER" bestanden hat
Eine Geschichte über den Versuch, private Variablen in Python zu implementieren.
Eine Geschichte über eine Tragödie, die durch den Austausch von Befehlen im Chat verursacht wurde
Eine Geschichte über einen GCP-Anfänger, der versucht, mit GCE einen Micra-Server aufzubauen
Eine Geschichte über einen Python-Anfänger, der mit dem No-Modul'http.server 'feststeckt.
Ein Hinweis zu KornShell (ksh)
Memorandum über Korrelation [Python]
Ein Hinweis zur TensorFlow-Einführung
Ein Memorandum über den Python-Mock
Ein bisschen mehr über FIFO
Ein Hinweis zu [Python] __debug__
Eine Geschichte über den Versuch, einen Chot zu automatisieren, wenn Sie selbst kochen
Eine Geschichte über das Hinzufügen einer REST-API zu einem mit Python erstellten Daemon
Eine Geschichte über einen Erstellungsfehler in einer gemeinsam genutzten Bibliothek, die auf libusb verweist
Die Geschichte, Chrome OS (nicht Chromium) in Surface GO zu integrieren
Eine Geschichte über die Entwicklung eines weichen Typs mit Firestore + Python + OpenAPI + Typescript
Eine Geschichte über den Versuch, mehrere Python-Versionen auszuführen (Mac Edition)