Help us understand the problem. What is going on with this article?

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

状況

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)


teruru
実行環境は主にmacでたまにubuntu。現在大学生で自由な環境で働くことを目標に頑張ってます。勉強していく上である程度まとまったら技術的なことを記事にしていきます。 主な言語はpython/c/php
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした