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.
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.
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.
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