Ich werde es mit der Bedeutung schreiben, ein Memo des Wissens zu hinterlassen, das ich vergessen habe zu schreiben, obwohl ich denke, dass es in AtCoder nicht oft verwendet wird. Die Erklärung ist flach. Wenn Sie mehr wissen möchten, lesen Sie bitte andere Artikel.
Oft wird überprüft, ob die Variable a in der Datenliste enthalten ist, indem "if a in data" verwendet wird. Ich war jedoch beeindruckt, wenn es etwas gab, das ich leicht zurückschreiben konnte, in welcher Nummer es sich befand, also werde ich es vorstellen.
qiita1.py
box = [4, 2, 1, 0, 3]
print(box.index(3))
#4
Wenn Sie auf diese Weise index ()
verwenden, wird die Antwort zurückgegeben, dass der Wert 3 der 4. ist.
Es ist sehr schwierig, die Überschrift zu sagen, aber in einfachen Worten scheint es, als könnten Sie Prioritäten setzen, wenn Sie eine mehrdimensionale Liste sortieren. Ich denke das ist immer noch schwierig, aber ...
box = [[1,1,8], [8,6,4], [5,9,8]]
Wenn Sie eine solche mehrdimensionale Liste haben, können Sie so denken. "Ich möchte sie in aufsteigender Reihenfolge anordnen, aber ich möchte, dass sie in aufsteigender Reihenfolge ** in der Reihenfolge der dritten Nummer, der ersten Nummer und der zweiten Nummer angeordnet sind." In diesem Fall kommt der Lambda-Ausdruck ins Spiel.
qiita2.py
box = [[1,1,8], [8,6,4], [5,9,8]]
box_sort = sorted(box)
print(box_sort)
#[[1, 1, 8], [5, 9, 8], [8, 6, 4]]
box_sort = sorted(box, key=lambda box_i:(box_i[2], box_i[0], box_i[1]))
print(box_sort)
#[[8, 6, 4], [1, 1, 8], [5, 9, 8]]
Du kannst das. Das Ergebnis ändert sich, da die Priorität beim Sortieren in der Reihenfolge des Schreibens sortiert ist. In der Überschrift unten gibt es ein ähnliches Thema. Bitte beachten Sie dies auch. Ich werde die Erklärung des Lambda-Ausdrucks weglassen. Referenzen ([Python] Mehrdimensionale Liste nach mehreren Schlüsseln sortieren)
box=[[1,1,8], [8,6,4], [5,9,8]]
Wenn Sie eine solche mehrdimensionale Liste haben, können Sie so denken. "Ich möchte, dass du ** aufsteigend, absteigend, aufsteigend ** in der Reihenfolge der dritten Nummer, der ersten Nummer und der zweiten Nummer machst." Ist dies in der obigen Überschrift nicht möglich? ?? Ich denke
qiita3.py
box = [[1,1,8], [8,6,4], [5,9,8]]
box_sort = sorted(box, key=lambda box_i:(box_i[2], box_i[0], box_i[1]))
print(box_sort)
#[[8, 6, 4], [1, 1, 8], [5, 9, 8]]
box_sort = sorted(box, key=lambda box_i:(box_i[2], -box_i[0], box_i[1]))
print(box_sort)
#[[8, 6, 4], [5, 9, 8], [1, 1, 8]]
Durch Hinzufügen von -
auf diese Weise wird der Wert mit -1
multipliziert. Je größer der Wert, desto kleiner wird er. Sie können dies in absteigender und aufsteigender Reihenfolge verwenden. Für das Problem von ABC128_B ist es meines Erachtens ein gutes Beispiel, zu untersuchen, ob Sie es mit diesem Lambda-Ausdruck lösen.
Nachdem ich einen Wörterbuchtyp mit Counter usw. erstellt habe, habe ich eine Weile Probleme damit, diesen Wörterbuchtyp zu verarbeiten, damit ich ihn leicht schreiben kann.
keys ()
: Es kann nur der Schlüssel für jedes Element abgerufen werden.
values ()
: Es können nur die Werte für jedes Element abgerufen werden.
items ()
: Sowohl Schlüssel als auch Wert für jedes Element können abgerufen werden.
Es wird verwendet, wenn Sie diese drei herausnehmen oder mit for drehen.
Referenzen (Python-Wörterbuch (dict) für die Schleifenverarbeitung (Schlüssel, Werte, Elemente) )
Da es das erste Mal war, habe ich höfliche Sprache verwendet, aber ich denke, dass es ab dem nächsten Mal schlampig sein wird. Da dies mein erster Beitrag ist, kontaktieren Sie mich bitte, wenn Sie falsche Informationen oder schlechte Manieren haben. Bitte beachten Sie, dass das Memo auch aussagekräftig ist.
Es gab einen Fehler im Inhalt von strip (). Es stellte sich heraus, dass strip () nicht verwendet werden muss, da der Fehler nicht tatsächlich auftritt, wenn die vorherige Beschreibung besagt, dass ein Fehler auftritt. Daher wurde die Beschreibung dort gelöscht. Verbreitung unsicherer Informationen Es tut uns sehr leid.