[PYTHON] Array-Betrieb usw. 1

Ja. Es ist eine Geschichte, die auf 2.7-Serien basiert. Es ist schmerzhaft (´ ´ ω ・ `) und es wird auf verschiedene Arten behandelt. Es ist scharf ... φ (・ ω ・ `c⌒ Sind die Arrays, die Sie frühzeitig für Listen, Sets, Tapples, Wörterbücher (Assoziationen) verwenden? Ich denke nicht, dass die Verwendung von Deque mehr für Anfänger ist. .. Referenzziele wie deque http://docs.python.jp/2/library/collections.html

Referenz: http://docs.python.jp/2/tutorial/datastructures.html Im Folgenden wird der Variablenname des Arrays als l geschrieben.

Listentyp

Wahrscheinlich die am häufigsten verwendete. Es gibt eine Garantie für die Reihenfolge der Elemente im Inneren. Ein sehr gutes Kind, das nur einen Teil der Elemente im Inneren ändern oder am Anfang, Ende oder irgendwo in der Mitte hinzufügen / löschen kann.

Initialisieren

l=[]

Zusätzlicher Betrieb

l.append(x)
Fügen Sie x am Ende der Liste hinzu. Schreiben Sie nicht l = l.append (x). Oder besser gesagt, ich werde leer sein. l.insert(i, x)
Fügen Sie x an der i-ten Position in der Liste hinzu. l.extend(l2)
Fügen Sie l2 am Ende der Liste l hinzu. Wenn l = [1,2,3] l2 = [4,5,6], dann ist l = [1,2,3,4,5,6]. Wenn Sie das ursprüngliche l behalten möchten, schreiben Sie l3 = l + l2.

Vorgang löschen

l.remove(x)
Löschen Sie das erste x in der Liste (der jüngste Index ganz links). Wenn Sie versuchen, einen Wert zu löschen, der nicht vorhanden ist, erhalten Sie einen ValueError. Versuchen Sie es also mit Ausnahme von oder wenn in. l.pop(i)
Nehmen Sie das i-te Element heraus. i ist nicht angegeben, sonst wird es automatisch am Ende hinzugefügt. Das durch p = l.pop (i) entfernte Element kann einer anderen Variablen zugeordnet werden.

Andere Operationen

l.count(x)
Zählen Sie die Anzahl der x in der Liste. l.sort() Sortieren Sie die Elemente in der Liste in aufsteigender Reihenfolge. Selbst wenn die Liste den Typ int und den Typ str enthält, tritt kein Fehler auf, aber ich glaube nicht, dass er gemischt wird, sodass Details weggelassen werden. l.reverse()
In der Liste in umgekehrter Reihenfolge sortieren. Es ist nicht in absteigender Reihenfolge. Wenn Sie in absteigender Reihenfolge bestellen möchten, sortieren Sie () und kehren Sie dann um ().

Typ einstellen

Wahrscheinlich die am zweithäufigsten verwendete. Es gibt keine doppelten Elemente im Inneren. Es gibt keine Bestellgarantie.

Initialisieren

l=set()

Zusätzlicher Betrieb

l.add(x)
Addiere x. Das Hinzufügen eines bereits vorhandenen Elements verursacht keinen Fehler. Es scheint, dass Dinge vom Listentyp nicht eingefügt werden können. Es scheint notwendig zu sein, l.add ((y, x)) oder Taple-Typ zu machen, wenn Koordinaten durch Routensuche usw. verwaltet werden.

Vorgang löschen

l.remove(x)
Entfernen Sie das x im Inneren. Das nur einmal vorhandene x verschwindet. l.pop() Nehmen Sie eines der Elemente heraus. Ich glaube nicht, dass es eine Garantie dafür gibt, was herauskommt. Das mit p = l.pop () abgerufene Element kann einer anderen Variablen zugewiesen werden.

Andere Operationen

Keine Bestellgarantie, kein Konzept selbst? Es scheint, dass Sie alle Elemente im Inneren mit für i in l treffen können :. Logischer Betrieb? Sie können verschiedene Dinge mit tun. Ich möchte dies später hinzufügen.

Wörterbuchtyp (assoziatives Array)

Wahrscheinlich die dritthäufigste. Der Schlüssel wird im darin enthaltenen Element nicht dupliziert. Insbesondere wird es zum Zeitpunkt dieses Problems abgekürzt, aber in der Eingabebeschränkung des Problems ist der Kandidat, ein Schlüssel zu sein, 0 bis 10 ^ 9, aber in Wirklichkeit werden nur ungefähr 100 Arten von Schlüsseln verarbeitet. Wirst du es benutzen? Ich denke, es ist ziemlich schwierig, ein Array mit einer Länge von 10 ^ 9 zu erstellen, indem man es mit 0s füllt.

Initialisieren

l={} Die darin enthaltenen Elemente sind {Schlüssel1: Wert1, Schlüssel2: Wert2}. Schlüssel und Wert sind gepaart. Der Schlüssel ist nicht doppelt vorhanden. Wenn Sie also versuchen, einen doppelten Schlüssel hinzuzufügen, verschwindet der ursprünglich vorhandene.

Zusätzlicher Betrieb

Schlüssel hinzufügen l[key]=value
Es ist gefährlich, es plötzlich hinzuzufügen, daher sollten Sie überprüfen, ob der Schlüssel bereits vorhanden ist. Wenn l.has_key (Schlüssel): oder wenn l:? Ich benutze nur das frühere Muster ohne besonderen Grund. Der Schlüssel kann nicht geändert werden, und der Listentyp kann nicht angegeben werden, da er ein unveränderliches Element sein muss. Mehrwert Da verschiedene Arten von Werten für den Wert verwendet werden können, erhöhen / verringern Sie die Anzahl der Vorkommen von Schlüsseln um l [Schlüssel] + = 1 oder l [Schlüssel] .append ("hoge") etwas, das zu einem bestimmten Schlüssel gehört. Du kannst es schaffen.

Vorgang löschen

Löschen Sie den Schlüssel selbst (Wert verschwindet ebenfalls) del l[key]
Wert löschen Da ein gewisser Wert vorhanden sein muss, denke ich, dass er je nach Zweck 0, "" oder [] sein wird.

Andere Operationen

l.keys() Sie können nur den Schlüssel zu einer anderen Liste mit s = l.keys () usw. abrufen. for k,v in sorted(l.items()): Nach Schlüsselwert sortieren for k,v in sorted(l.items(), key=lambda x:x[1])

Taple-Typ

Die Elemente im Inneren können nicht geändert werden. Es gibt ein Konzept der Ordnung.

Initialisieren

l=() Selbst wenn dies der Fall ist, wird es als unveränderlich behandelt, daher denke ich nicht, dass es durch Initialisierung vorbereitet wird.

Vorgang zum Hinzufügen / Löschen

Ich habe das Gefühl, dass es keine Hinzufügung oder Löschung gibt. Ich denke nicht, dass es möglich ist, zwei oder mehr Taples zu kombinieren, indem man eine neue Variable neu zuweist oder zuweist oder sich bemüht, Dinge zu schneiden und zu löschen. .. ..

Andere Operationen

Ich glaube nicht, dass es etwas Besonderes zu tun gibt. Ich bin der Meinung, dass es nur in Situationen verwendet wird, in denen es erforderlich ist, einen Wörterbuchtypschlüssel zu verwenden, ihn in einen festgelegten Typ zu setzen und die Koordinaten zu ändern und die darin enthaltenen Elemente nicht zu ändern, und es ist kein Taple-Typ.

Eine leichte Geschichte, die den Typ nicht einschränkt

Verwalten Sie für i in Bereich (n): oder Indexwert den Listentyp nicht streng, sondern versuchen Sie ~, außer mit Pass zu schummeln, wenn ein Fehler auftritt. Verarbeiten Sie, bis ein Fehler auftritt. Er ist wirksam. Verwenden Sie ihn daher sorgfältig. Wenn es sich um eine Array-Operation handelt, muss ich eine Geschichte darüber schreiben, wie man sie verwendet, aber diesmal.

Recommended Posts

Array-Betrieb usw. 1
[Python] Array-Slice-Operation
Bitoperation
Unbeaufsichtigter Betrieb von Google Spreadsheets (usw.) in Python