python で sort と lambda
pythonでsort
参考:【Python】ソート
昇順に並び替える
alphabets = ['A', 'B', 'D', 'C']
numbers = [1, 2, 4, 3]
alphabets.sort()
print(alphabets)
# ['A', 'B', 'C', 'D']
numbers.sort()
print(numbers)
# [1, 2, 3, 4]
降順に並び替える
alphabets = ['A', 'B', 'D', 'C']
numbers = [1, 2, 4, 3]
alphabets.sort(reverse=True)
print(alphabets)
# ['D', 'C', 'B', 'A']
numbers.sort(reverse=True)
print(numbers)
# [4, 3, 2, 1]
逆順に並び替える
alphabets = ['A', 'B', 'D', 'C']
numbers = [1, 2, 4, 3]
alphabets.reverse()
print(alphabets)
# ['C', 'D', 'B', 'A']
numbers.reverse()
print(numbers)
# [3, 4, 2, 1]
多次元を並び替える
mixed_list = [['a', 6], ['c', 1], ['a', 2], ['b', 5], ['b', 3], ['c', 4]]
mixed_list.sort(key=lambda x:x[1])
print(mixed_list)
# 数値でソートをする。
# [['c', 1], ['a', 2], ['b', 3], ['c', 4], ['b', 5], ['a', 6]]
mixed_list.sort(key=lambda x:x[0])
print(mixed_list)
# 更にアルファベットでソートをする。
# [['a', 2], ['a', 6], ['b', 3], ['b', 5], ['c', 1], ['c', 4]]
# ※アルファべットのみでソートした場合は下記の通り数値は無視される。
# [['a', 6], ['a', 2], ['b', 5], ['b', 3], ['c', 1], ['c', 4]]
上記を一回でソートする
mixed_list = [['a', 6], ['c', 1], ['a', 2], ['b', 5], ['b', 3], ['c', 4]]
mixed_list.sort(key=lambda x:(x[0], x[1]))
print(mixed_list)
# [['a', 2], ['a', 6], ['b', 3], ['b', 5], ['c', 1], ['c', 4]]
上記をitemgetterでソートする
from operator import itemgetter
mixed_list = [['a', 6], ['c', 1], ['a', 2], ['b', 5], ['b', 3], ['c', 4]]
mixed_list.sort(key=itemgetter(0,1))
print(mixed_list)
# [['a', 2], ['a', 6], ['b', 3], ['b', 5], ['c', 1], ['c', 4]]
ディスカッション
コメント一覧
まだ、コメントがありません