[Python] Array-Slice-Operation

Überprüfen von Array-Slicing-Vorgängen, die häufig in Python verwendet werden

Ich habe viel Slice-Operationen verwendet, seit ich angefangen habe, Python zu studieren, deshalb möchte ich es hier für meine eigene Bestätigung zusammenfassen.

Manipulieren des Arrays

Zunächst wird aus dem Array in Python das erstellte Array automatisch nummeriert (als Index bezeichnet), und die Nummer des Inhalts, der ab 0 erstellt wird, wird zugewiesen.

l = [5,3,1,2]
print(l.index(5))
print(l.index(3))
print(l.index(1))
print(l.index(2))
$ python atcoder.py
0
1
2
3

Es stellt sich heraus, dass 0123 in dem Array wie folgt 5,3,1,2 zugewiesen wird. Übrigens ist .index () von l.index () eine Funktion, die für Dinge mit Index wie Arrays verwendet werden kann, und Sie können die Indexnummer der angegebenen Stelle abrufen.

Verwenden Sie als Nächstes diesen Index, um die Werte im Array abzurufen.

l = [5,3,2,1]

print(l[0])
print(l[2])
$ python atcoder.py
5
2

Fügen Sie dem Array wie folgt [] hinzu und geben Sie den Index an, den Sie darin abrufen möchten. Wenn Sie l [0] setzen, erhalten Sie den 0. 5 ..

Nehmen Sie als Nächstes den Inhalt mehrerer Arrays anstelle eines.

l = [5,3,2,1]
print(l[0:2])
$ python atcoder.py
[5, 3]

Wie Sie sehen können, wenn Sie mehrere Werte annehmen möchten, verwenden Sie [Index: Index]. Sie können von der am Anfang angegebenen Nummer bis zum Bereich der später angegebenen Nummer gelangen. Bitte beachten Sie, dass Sie, wenn Sie [0: 2] zusammen mit der for-Anweisung usw. setzen, den Wert eins vor 2 erhalten, dh in diesem Fall den Wert von 0 bis 1.

Weiter ist die Methode vom Anfang bis zum Ende oder vom Anfang bis zum Ende

l = [5,3,2,1]
print(l[1:])
$ python atcoder.py
[3, 2, 1]
l = [5,3,2,1]
print(l[:3])
$ python atcoder.py
[5, 3, 2]

Der erste ruft den Wert aus dem durch [Index:] angegebenen Index bis zum Ende ab. Letzteres entspricht dem Index, der von Anfang an mit [: Index] angegeben wurde, und letzteres entspricht bis zu einem zuvor, wie zuvor erläutert.

Anwendung

Dies mag im Alltag nicht vorkommen, aber wo sind die Zahlen nebeneinander angeordnet und wo teilen Sie sie auf, um den Größenunterschied zwischen links und rechts zu verringern? In solchen Fällen ist das Schneiden bequem.

l = [3,14,6,40,2,6,17,4,6,7,38,5,44,22,1,6,6,7]

for i in range(1,len(l)):
    l_l = l[:i]
    print(f"l_l{l_l}")
    l_r = l[i:]
    print(f"l_r{l_r}")

Durch Erhöhen des Werts einer bestimmten Zahl auf eine bestimmte Zahl und des Werts einer bestimmten Zahl von einer bestimmten Zahl nacheinander kann sie an allen Positionen in rechts und links unterteilt werden. Wenn der Bereich von 1 bis 0 reicht, wird l_l in der ersten Schleife zu l [: 0] und ein leeres Array wird vervollständigt. Es ist nicht erforderlich, den Himmel mit den anderen zu vergleichen, also habe ich dies getan.

l_l[3]
l_r[14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14]
l_r[6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6]
l_r[40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40]
l_r[2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2]
l_r[6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6]
l_r[17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17]
l_r[4, 6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4]
l_r[6, 7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6]
l_r[7, 38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7]
l_r[38, 5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38]
l_r[5, 44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5]
l_r[44, 22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44]
l_r[22, 1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22]
l_r[1, 6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1]
l_r[6, 6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6]
l_r[6, 7]
l_l[3, 14, 6, 40, 2, 6, 17, 4, 6, 7, 38, 5, 44, 22, 1, 6, 6]
l_r[7]

Also sollte ich alle Unterschiede von hier nehmen, es hat nichts mit diesem Artikel zu tun, aber ich werde es vorerst schreiben

l = [3,14,6,40,2,6,17,4,6,7,38,5,44,22,1,6,6,7]

min_g = 10000000
ans = 0
for i in range(len(l)):
    l_l = l[:i]
    l_r = l[i:]

    if min_g > abs(sum(l_l)-sum(l_r)):
        min_g = abs(sum(l_l)-sum(l_r))
        ans = i

print(ans)
$ python atcoder.py
10

Es scheint, dass es keinen Unterschied in der Methode gibt, die Indexnummern bis zum 10. und vom 10. zu teilen.

Zusammenfassung

Es gibt immer noch viele Slices und es ist schwierig, sie alle zu schreiben. Deshalb habe ich diejenigen geschrieben, die ich in den Grundlagen häufig verwende.

Recommended Posts

[Python] Array-Slice-Operation
Python Slice
Python String Slice
[Python] Vektoroperation
Array-Betrieb usw. 1
Mehrdimensionales Python-Array
[Anfänger] Python-Array
Python-Betriebssystembetrieb
Python Slice Grundlagen
[Python] Matrixoperation
Grundlagen des Python-Arrays
[Python] Operation der Aufzählung
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
Berechnung des Python-Numpy-Arrays
Zusammenfassung der Python-Verzeichnisoperationen
Stolperstein der Python-Logik
Python-Dekorator-Operationsnotiz
Python-Memo (für mich): Array
Sortieren Sie schnell ein Array in Python 3
Python: 3D-Array-Bild (numpy.array)
S3-Betrieb mit Python Boto3
Python und Ruby Slice Memo
Stolpern Geschichte mit Python-Array
Erstellen Sie ein Python-Numpy-Array
Zweidimensionale Python-Array-Falle [Kopie des Arrays]
So schneiden Sie ein Block-Multiple-Array aus einem Multiple-Array in Python
Python pywin32 (win32com) Excel-Memorandum
[Python] Operationsnotiz von Pandas DataFrame
Indexierter Zugriff auf das Python-Numpy-Array
Python
Scheibe
[Python] Woche 1-3: Nummerntyp und Operation
Python, Slice ohne Doppelpunkt (:). a .__ getitem__ (Slice (3,5)).
Python-Anwendung: Numpy Teil 3: Double Array
[Python] So tauschen Sie Array-Werte aus
Python> Was ist ein erweitertes Slice?
[Mit Python automatisiert! ] Teil 2: Dateivorgang
[Python] Dateivorgang mit der if-Anweisung
Mausbedienung mit Windows-API in Python
Python + Selen Zusammenfassung der häufig verwendeten Operationsmethoden
Zwei Regeln beim Lesen von Python (Slice-Notation)
Python> Link> Initialisierung und Zuweisung von 2D-Arrays
Python / numpy> list (numpy array) Datei speichern / laden
[Python-Anfängermemo] Python-Zeichenfolge, Pfadoperation
[Einführung in die Udemy Python3 + -Anwendung] 17. Listenoperation
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
Was ich mit Python-Arrays gemacht habe
[Python] Kombinieren Sie alle Elemente in einem Array