Ich möchte im Grunde ein Python-Äquivalent dazu in C:
int a[x];
aber in Python deklariere ich ein Array wie:
a = []
und das Problem ist, dass ich zufällige Slots mit Werten wie den folgenden zuweisen möchte:
a[4] = 1
Aber ich kann das nicht mit Python machen, da das Array leer ist.
python
arrays
dynamic-arrays
user299648
quelle
quelle
a = [obj] * N
achten müssen, ist, dass in jedem Element des Arrays dasselbe Objekt angezeigt wird. Wenn es sich um ein veränderbares Objekt handelt und Sie ein Element ändern, werden alle geändert. ... Für dieses Beispiel mit Ganzzahlen (oder einem anderen unveränderlichen Typ) spielt dies jedoch keine Rolle. Wenn Sie nur Elemente zuweisen, ist dies ebenfalls kein Problem. (Ich erwähne es, weil ich genau das viel zu oft getan habe :))Sie können in Python nicht genau das tun, was Sie wollen (wenn ich Sie richtig gelesen habe). Sie müssen Werte für jedes Element der Liste (oder wie Sie es nannten, Array) eingeben.
Aber versuchen Sie Folgendes:
Verwenden Sie für Listen anderer Typen
None
häufig etwas anderes als 0. Dies ist häufig auch eine gute Wahl.quelle
range(N)
wird bereits eine Liste erstellen, wenn Python <3.0.xrange(N)
Python 2.x verwenden. Ich bin mir jedoch nicht sicher, wie es an das Falsche grenzt. Ich bevorzuge es,a = range(N)
weil jedes Element mit einem vernünftigen "Standard" beginnt. Ich denke, es ist Ansichtssache.Sie können numpy verwenden:
Beispiel aus leerem Array :
quelle
Deklarieren Sie einfach die Liste und hängen Sie jedes Element an. Zum Beispiel:
quelle
Sie können dies auch mit der Methode zum Erweitern der Liste erweitern.
quelle
Wenn Sie (oder andere Sucher dieser Frage) tatsächlich daran interessiert waren, ein zusammenhängendes Array zum Füllen mit ganzen Zahlen zu erstellen , ziehen Sie bytearray und memoryivew in Betracht :
quelle
quelle
Wenn Sie tatsächlich ein Array im C-Stil möchten
Beachten Sie, dass es in Python kein Konzept für nicht initialisierte Variablen gibt. Eine Variable ist ein Name, der an einen Wert gebunden ist, sodass dieser Wert etwas haben muss. Im obigen Beispiel wird das Array mit Nullen initialisiert.
Dies ist jedoch in Python ungewöhnlich, es sei denn, Sie benötigen es tatsächlich für Low-Level-Inhalte. In den meisten Fällen ist es besser, eine leere Liste oder ein leeres Numpy-Array zu verwenden, wie andere Antworten vermuten lassen.
quelle