Python-Spickzettel

Der Inhalt von Sort HOW TO - Python 3.5.1-Dokument und weitere Tipps.

Sortierfunktion

list.sort()

>>> a = [3, 0, 5, 1]
>>> a.sort()
>>> a
[0, 1, 3, 5]
>>> print(a.sort())  #Es gibt keinen Rückgabewert
None

sorted(list)

>>> a = [3, 0, 5, 1]
>>> sorted(a)
[0, 1, 3, 5]
>>> a  #Die ursprüngliche Liste bleibt unverändert
[3, 0, 5, 1]
>>> sorted(iter([3, 0, 5, 1]))  #Kann für andere als Listen verwendet werden
[0, 1, 3, 5]

Umgekehrte Sortierung

>>> a = [3, 0, 5, 1]
>>> sorted(a, reverse=True)
[5, 3, 1, 0]

Geben Sie den Sortierschlüssel an

>>> a = ["c", "aaa", "Bb"]
>>> sorted(a, key=lambda x: x.lower())
['aaa', 'Bb', 'c']
>>> sorted(a, key=str.lower)
['aaa', 'Bb', 'c']
>>> sorted(a, key=len)
['c', 'Bb', 'aaa']

Sortieren von Listen mit Wörterbüchern, Listen und Tapples als Elementen

python


>>> a = [("b", 3), ("b", 1), ("a", 1), ("a", 2), ("c", 2)]
>>> sorted(a)
[('a', 1), ('a', 2), ('b', 1), ('b', 3), ('c', 2)]

python


>>> a = [{"key1": 3}, {"key1": 1}]
>>> from operator import itemgetter
>>> sorted(a, key=itemgetter("key1"))
[{'key1': 1}, {'key1': 3}]

Sortieren einer Liste mit Klassen als Elementen

python


>>> from datetime import date
>>> a = [date(2016, 1, 1), date(2015, 12, 1)]
>>> from operator import attrgetter
>>> sorted(a, key=attrgetter("month"))
[datetime.date(2016, 1, 1), datetime.date(2015, 12, 1)]

Zusammengesetzte Sortierung

python


>>> a = [("b", 3), ("b", 1), ("a", 1), ("a", 2), ("c", 2)]
>>> b = sorted(a, key=itemgetter(1), reverse=True)
>>> sorted(b, key=itemgetter(0))
[('a', 2), ('a', 1), ('b', 3), ('b', 1), ('c', 2)]

--Itemgetter und attrgetter können mehrere Schlüssel gleichzeitig angeben. Verwenden Sie diese Option, wenn die absteigende und aufsteigende Reihenfolge für alle Schlüssel gleich sind.

python


>>> sorted(a, key=itemgetter(0, 1))
[('a', 1), ('a', 2), ('b', 1), ('b', 3), ('c', 2)]

Sortieren, wenn es None enthält

>>> a = [3, 0, None, 5, 1]
>>> sorted(a)  #Die Sortierung schlägt normalerweise fehl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: NoneType() < int()
>>> sorted(a, key=lambda x: (x is None, x))  #Keine am Ende
[0, 1, 3, 5, None]
>>> sorted(a, key=lambda x: (x is not None, x))  #Keine am Anfang
[None, 0, 1, 3, 5]

Python sort list with None at the end - Stack Overflow

Machen Sie Klassen sortierbar

--Implement __lt__ ().

class P(object):
    def __init__(self, gender, age):
        self.gender = gender
        self.age = age
    def __repr__(self):
        return "{:s}{:d}".format(self.gender, self.age)
    def __lt__(self, other):
        return (self.gender, self.age) < (other.gender, other.age)

a = [P("F", 30), P("F", 20), P("M", 20), P("M", 40), P("F", 10)]
print(sorted(a))

Führen Sie mehrere sortierte Iterables zusammen

-Verwenden Sie heapq.merge.

>>> import heapq
>>> list(heapq.merge([1, 3, 4, 7], [2, 5], [6]))
[1, 2, 3, 4, 5, 6, 7]

Sortieren Sie große Textdateien

Recommended Posts

Python-Spickzettel
PySpark Cheet Sheet [Python]
[Python3] Standardeingabe [Cheet Sheet]
[Python] Sortieren
Python #sort
Python Django Tutorial Cheet Sheet
Apache Beam Cheet Sheet [Python]
Curry Spickzettel
SQLite3 Spickzettel
pyenv Spickzettel
AtCoder Spickzettel in Python (für mich)
Blender Python Mesh Datenzugriffsprüfblatt
Cheet Sheet (Python) des Mathematical Optimization Modeler (PuLP)
conda Befehl Spickzettel
PIL / Kissen Spickzettel
Blasensortierung in Python
Python selbst erstellte Klassensortierung
Spark API Spickzettel
[Memo] Python 3-Listensortierung
[Aktualisierung] Python Syntax Spickzettel für Java Shop
Benutzerdefinierte Sortierung in Python3
[Python] Sammlungstypen sortieren
Python-basierte PDF-Spickzettel
Tox Einstellungsdatei Spickzettel
Python-Modul-Importe alphabetisch sortieren
Sortieren Sie den Pfad natürlich in Python
Python Basic Dikt Sortierreihenfolge
Sortieren Sie große Dateien mit Python
Slack API Anhänge Spickzettel
Absteigende Sorte mit Mongodb in Python
Python-Anfänger organisieren Blasensorten
Scikit lernen Algorithmus Spickzettel
Sortieren nach Datum in Python
Über Python sort () und reverse ()
Persönlicher Spickzettel von Google Test / Mock
CPS-Spickzettel (Continuous Delivery Style)
[Python] Sortierbar nach mehreren Bedingungen sortieren
Python
Sortieren Sie große Textdateien in Python
[Python] Einzeilige Starlin-Sortierung mit 50 Zeichen
Sortieren
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
Was ist neu in Python 3.9 (2) -Sortierte nicht verteilte Diagramme in Python
Curry-Spickzettel [Listenversion des Beschreibungsbeispiels]
[Neuerfindung der Räder] Von Menschen betriebene Turniersorte [Python]
Stuge Sort in Python 3 implementiert (Bubble Sort & Quick Sort)
R-Code-kompatibles Blatt für Python-Benutzer