Heim >Backend-Entwicklung >Python-Tutorial >So referenzieren Sie Arrays in Python-Listen

So referenzieren Sie Arrays in Python-Listen

黄舟
黄舟Original
2016-12-16 16:19:505277Durchsuche

In diesem Artikel werden Python-Listen vorgestellt. In Computersprachen sind Python-Listen eine weit verbreitete Sprache. Wenn Sie Fragen zur praktischen Anwendung von Python-Listen haben, können Sie unseren Artikel durchsuchen.

Es gibt keine Datenstruktur für Arrays in Python, aber Listen sind Arrays sehr ähnlich, wie zum Beispiel:

a=[0,1,2]这时a[0]=0, a[1]=1, a[[2]=2,

Aber es stellt sich die Frage, was passiert, wenn Array a gewünscht wird kann von 0 bis 999 definiert werden. Dies kann durch a = range(0, 1000) erreicht werden. Oder lassen Sie es als a = range(1000) weg. Wenn Sie a mit einer Länge von 1000 definieren möchten und die Anfangswerte alle 0 sind, dann

a = [0 for x in range(0, 1000)]

hier wird ein 10*10 zwei- definiert. dimensionales Array mit einem Anfangswert von 0. Später habe ich im Internet eine einfachere Methode für literale zweidimensionale Arrays gefunden: b = [[0]*10]*10, die 10*10 als zweidimensionales Array mit einem Anfangswert von 0 definiert. Vergleichen Sie mit

a=[[0 for x in range(10)] for y in range(10)]

: Das Ergebnis von print a==b ist True. Nachdem jedoch die Definitionsmethode von b anstelle von a verwendet wurde, ging auch das vorherige Programm, das normal ausgeführt werden konnte, schief. Nach sorgfältiger Analyse wurde der Unterschied festgestellt: Wenn a[0][0]=1, nur a[0][. 0] ist 1, alle anderen sind 0. Wenn b[0][0]=1, sind a[0][0], a[1][0] und a[9,0] alle 1. Daraus erhalten wir, dass die 10 kleinen eindimensionalen Daten im großen Array alle dieselbe Referenz haben, das heißt, sie zeigen auf dieselbe Adresse. Daher entspricht b = [[0]*10]*10 nicht unserem herkömmlichen zweidimensionalen Array.

Gleichzeitig wurde getestet: Die Definition von c=[0]*10 hat den gleichen Effekt wie c=[0 für x in range(10)], ohne das gleiche Referenzproblem wie oben Es wird geschätzt, dass die Definition des Arrays c zu diesem Zeitpunkt den Werttyp multipliziert, während im vorherigen b der Typ multipliziert wird, da das eindimensionale Array eine Referenz ist (Ausleihe des Werttyps und des Referenztyps in C#) , ich weiß nicht, ob es angemessen ist). Der obige Artikel ist eine teilweise Einführung in Python-Listen.

Oben erfahren Sie, wie Sie auf Arrays in Python-Listen verweisen. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn