LoginSignup
0
0

More than 3 years have passed since last update.

pythonで日にちを基準にソートする

Posted at

状況

pythonの辞書でキーに対して値が日にちで入ってるのでソートしたい。

試したこと

そもそも辞書だとキーと値があってややこしいので、まずはリストで考える
試しにやってみました。

list = [2020-1-2,2019-3-4,2020-2-4]
print(sorted(list))

結果

[2012, 2014, 2017]

なんじゃこりゃ

※どうやら引き算になってたみたいです。完全に盲点でした、教えていただいた方ありがとうございました!

こちらでやったらうまくいきました。

list = ['2020-1-2','2019-3-4','2020-2-4']
print(sorted(list))

辞書を日付基準でソートするためには?

それでは本題です。

リストは日付基準でソートする方法がたくさん出てきたが、辞書はあまりなかったので、今回やり方を考えてみました。

やり方としては

1.辞書を一旦、キーと値をセットの二次元配列に変換
2.二次元配列の状態でソートをかける
3.辞書に戻す

これなら調べて出てきたソートの方法が使える

2の二次元配列で日付基準でソートをかける方法に関しては以下の記事を参考にさせていただきました。
https://cre8cre8.com/python/sort_string_date.htm

実際に書いたコード

dict = {'panf1':'2020-2-1','panf2':'2019-3-4','panf4':'2020-1-3'}
list1 = []
sorted_dict={}

print(dict)
for i,j in dict.items():
    list2=[]
    list2.append(i)
    list2.append(j)
    list1.append(list2)
print(list1)

sorted_data = sorted(list1,key=lambda x:x[1],reverse=True)
print(sorted_data)

for k in sorted_data:
    sorted_dict[k[0]]=k[1]

print(sorted_dict)


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0