[PYTHON] Unterschiede im Verhalten jeder LL-Sprache, wenn der Listenindex übersprungen wird

Es ist eine Geschichte von "na und", aber ich fand es interessant, dass das Verhalten in jeder Sprache unterschiedlich war.

JavaScript

var arr = [];
arr[100] = 'foo';
console.log(arr.length); //=> 101
console.log(arr[0]); //=> undefined
console.log(arr[101]); //=> undefined

Undefinierte Indizes geben "undefiniert" zurück.

Das Deklarieren von "use strict"; "ändert nichts am Ausführungsergebnis.

Perl

my @arr;
$arr[100] = 'foo';
print $#arr; #=> 100
print defined $arr[0] ? 1 : 0; #=> 0
print defined $arr[101] ? 1 : 0; #=> 0

Undefinierte Indizes scheinen wie JavaScript "undef" zu sein.

Durch die Deklaration von "use strict;" wird das Ausführungsergebnis nicht geändert.

Ruby

arr = []
arr[100] = 'foo'
p arr.size #=> 101
p arr[0] #=> nil
p arr[101] #=> nil

Es ist fast das gleiche wie JavaScript / Perl, aber es wird "Null". Dies liegt wahrscheinlich daran, dass es kein Äquivalent zu "undefiniert" gibt.

PHP

$arr = array();
$arr[100] = 'foo';
echo count($arr); //=> 1
echo is_null($arr[0]); //=> 1
echo is_null($arr[101]); //=> 1

Der undefinierte Index ist "null".

Die Länge des Arrays beträgt 1, was sich von anderen Sprachen unterscheidet. Dies scheint in PHP der Fall zu sein, da sowohl die Liste als auch der Hash (Wörterbuch) "Array" sind.

[Zusatz]

Der Zugriff auf einen undefinierten Index führt zu einem Fehler auf der Ebene "E_NOTICE". (Siehe Kommentare für Details)

error_reporting(E_ALL); // E_Auf Ausgabe einstellen HINWEIS

$arr = array();
$arr[100] = 'foo';
echo $arr[0]; //=> Notice: Undefined offset: 0

Python

arr = []
arr[100] = 'foo' #=> IndexError: list assignment index out of range

Wenn Sie versuchen, auf einen nicht vorhandenen Index zu verweisen / diesen zuzuweisen, erhalten Sie "IndexError". Ich denke, dass dies das einfachste Verhalten ist.

Recommended Posts

Unterschiede im Verhalten jeder LL-Sprache, wenn der Listenindex übersprungen wird
Die Geschichte, dass Vererbungsverhalten in jeder Sprache sehr unterschiedlich ist
Verhalten in jeder Sprache, wenn Collouts mit for wiederverwendet werden
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
Verhalten bei der Rückkehr in den with-Block
[GO-Sprache] Organisieren Sie das Importverhalten an anderen Orten als GOPATH
Wenn das Ziel Ubuntu 16.04 in Ansible ist
Liste der in Twitter verwendeten Sprachcodes (einschließlich API) (mit Python-Wörterbuch). Was ist die am häufigsten verwendete Sprache?
[pandas] Wenn Sie die Standardindexbezeichnung in der at-Methode angeben, ist "" nicht erforderlich
Ändern Sie in Python das Verhalten der Methode je nach Aufruf
[Für Anfänger] Unerwartetes Verhalten, wenn beim Festlegen des Pfads in Python "\" enthalten ist
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Passen Sie die Verteilung jeder Gruppe in Python an
Kopieren Sie die Liste in Python
Verhalten bei Container Trainable = False in Keras
Suchen Sie nach dem Wert der Instanz in der Liste
[Lösung] Wenn "0001" in die Zeichenfolgenspalte in sqlite3 eingefügt wird, wird es als "1" eingegeben.
Unterschiede im Verhalten zwischen den Operatoren append () und "+ =" beim Hinzufügen von Daten zu einer Liste in Python
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Wenn das ausgewählte Objekt in bpy.context.selected_objects nicht zurückgegeben wird
[Python] Ruft die Liste der im Modul definierten Klassen ab
Überprüfen Sie, ob es sich um Unix in der Skriptsprache handelt
Einbetten in datetime, wenn nur die Zeit bekannt ist
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
Wenn Sie das Update von ManjaroLinux für seltsam halten
Erstellen einer Liste, wenn die Nomenklatur für einen bestimmten Zeitraum gültig ist
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Wenn sich eine Zeichenfolge einer bestimmten Reihe im Schlüssel des Wörterbuchs befindet, wird die Zeichenfolge in den Wert des Wörterbuchs konvertiert.
[Verarbeitung natürlicher Sprache] Ich habe versucht, die Bemerkungen jedes Mitglieds in der Slack-Community zu visualisieren
Hinweis zum Standardverhalten von collate_fn in PyTorch
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Verhalten, wenn mehrere Server in Nameservern von dnspython angegeben sind
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Ruft den Index des n-ten größten / kleinsten Werts in der Liste in Python ab
Finden Sie heraus, wie viele Zeichen sich in der Zeichenfolge befinden.
Numerische Approximationsmethode, wenn die Berechnung der Ableitung schwierig ist
Ruft den Index des n-ten größten / kleinsten Werts in der Liste in Python ab
Erläuterung der CSV und Implementierungsbeispiel in jeder Programmiersprache
Vorsichtsmaßnahmen bei der Überlagerung der Wahrscheinlichkeitsdichtefunktion und des Histogramms in matplotlib