Benutzerdefinierte Sortierung in Python3

In Python2, sort has input cmp to define custom comparizon. However, python3 removed it.

In Pyhton2

>>> def compare(a, b):
...     """Comparison that ignores the first letter"""
...     return cmp(a[1:], b[1:])
>>> names = ['Adam', 'Donald', 'John']
>>> names.sort(cmp=compare)
>>> names
['Adam', 'John', 'Donald']

In Python3, we can just use key.

>>> names = ['Adam', 'Donald', 'John']
>>> names.sort(key=lambda x: x[1:])
>>> names
['Adam', 'John', 'Donald']

complex sort: Sort word count. Data is represented by tuple: (word, count).

  1. sort by count in descending order
  2. if count is same, sort them with alphebet order of word
>>> l = [('betty', 1), ('a', 1), ('butter', 2)]
>>> def custom_key(x):
...     return -x[1], x[0]
...
>>> l.sort(key=custom_key)
>>> l
[('butter', 2), ('a', 1), ('betty', 1)]

How this works? In comparison, python check first element of tuple. If they are same, compare the next element in tuple. Therefore, sort by count in descending order means first tuple and if count is same means second tuple of element.

ref: http://python3porting.com/preparing.html

Recommended Posts

Benutzerdefinierte Sortierung in Python3
[Python] Sortieren
Absteigende Sorte mit Mongodb in Python
Python #sort
Sortieren nach Datum in Python
Sortieren Sie große Textdateien in Python
Benutzerdefiniertes Zustandsraummodell in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
Was ist neu in Python 3.9 (2) -Sortierte nicht verteilte Diagramme in Python
Stuge Sort in Python 3 implementiert (Bubble Sort & Quick Sort)
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python