数字,文字をソートする

score_list = [98, 220, 201, 145, 180] → リストを作成する

sorted_score = sorted(score_list)

print(sorted_score) →98から始まるように表示される。

文字列は?

sorted(member) →これでアルファベット順にソートされる

文字をあいうえお順に並べ替える

word = ‘たけやぶやけた’
words = list(word) →list(文字列):文字列を1文字ずつリストに分けます。
sorted_words = sorted(words) sortedはリストのみに使える。
print(sorted_words)

昇順 or 降順にするには

昇順  sorted_score =sorted(score_list,reverse=False)
降順 sorted_score =sorted(score_list,reverse=True) これを入れる

list_score = [["japanese",85], ["math",73], ["society",98], ["science",94], ["english",87]]
print(sorted(list_score, key=lambda x:x[0]))
print(sorted(list_score, key=lambda x:x[1], reverse=True))
[['english', 87], ['japanese', 85], ['math', 73], ['science', 94], ['society', 98]]
[['society', 98], ['science', 94], ['english', 87], ['japanese', 85], ['math', 73]]

解説

  • キーになる要素を指定してソートする方法:sorted(リスト名, key=lambda x:x[keyにしたいインデックス])

補足:lambdaは無名関数と呼ばれている。しかし、公式に推奨されていない書き方なのでここでは詳しく説明しない。

  • lambdaを使わなくても書くことができるdef func(x): return x[1]print(sorted(list_score, key=func, reverse=True))
  • 頭の片隅に入れておくと役に立つ時が来るはずだ!

コメント

タイトルとURLをコピーしました