2つの[Python]キーをRamda式でソート

3317 ワード

ランダ式


ラムダ式とは、識別子のない実行可能な関数を指し、関数宣言を必要とせずに簡単に式を表す.

2つのキーをRamda式でソート

s = ["2 A", "1 B", "4 C", "1 A"]

print(sorted(s)) # ['1 A', '1 B', '2 A', '4 C']
上のように並べ替えると、前の数字によって並べ替えられます.次の操作を行います.
def func(x):
    return x.split()[1], x.split()[0]

s.sort(key=func)
print(s) # ['1 A', '2 A', '1 B', '4 C']
Ramda式を使用すると、個々の関数を宣言せずに処理を簡略化できます.
s.sort(key=lambda x: (x.split()[1], x.split()[0]))
print(s) # ['1 A', '2 A', '1 B', '4 C']