Python |日付のリストを文字列として並べ替える

例:

入力:日付=[「2017年7月24日」、「2017年7月25日」、「1996年6月11日」 」、「2019年1月1日」、「2005年8月12日」、「1997年1月1日」]

出力:2007年1月1日
2016年7月10日
2017年12月2日
2018年6月11日
2018年6月23日
2019年1月1日

適切:
Pythonの場合関数sort()(その場でソートするため)およびsorted()(新しいソートされたリストを返す)を使用して、リストをソートできます。ただし、デフォルトでは、これらの組み込みの並べ替え関数は文字列のリストをアルファベット順に並べ替えます。この場合、順序が間違ってしまいます。したがって、 key 引数を渡して、リストの要素を特定の方法で比較し、それに応じて並べ替える必要があることを並べ替え関数に通知する必要があります。

Pythonには、日付に基づく比較を容易にするモジュールdatetimeがあります。 datetime.strptime()関数は、指定された文字列を日時オブジェクトに変換するために使用されます。 (文字列)と(形式を指定するために使用されます。例:%Yは年を指定するために使用されます)の2つの引数を取り、日時オブジェクトを返します。

構文:

 datetime.strptime(date、format)

この問題に必要なフォーマットは次のとおりです。< / p>

 %d  ---&gt;日%b  ---&gt;月間%Y  ---&gt; for Year 

したがって、 datetimeオブジェクトをkey引数としてsort関数に渡して、変換によって文字列を比較するようにsort関数に指示する必要があります。それらを日付に分類し、昇順で並べ替えます。

以下は上記のアプローチの実装です。

< tbody>

#日付のリストを並べ替えるためのPython3プログラム
#文字列形式で指定


#日時モジュールをインポート

from datetime import datetime


#リストに保存されているデータを印刷するための関数

def printDates(dates):

for i in range len (dates)):

print (dates [i])

< p> if __ name__ = = "__ main__"

日付 = [ "2018年6月23日" "2017年12月2日" "2018年6月11日"

"01 Jan 2019" "2016年7月10日" "2007年1月1日" ]

#並べ替え日付の昇順でリスト

date.sort(key = lambda date:datetime.strptime(date、 ’%d%b%Y’ ))

#日付を並べ替えて印刷する

printDates(dates)

終了:

2007年1月1日2016年7月10日2017年12月2日2018年6月11日2018年6月23日2019年1月1日

Shop

Gifts for programmers

Best Python online courses for 2022

$FREE
Gifts for programmers

Best laptop for Excel

$
Gifts for programmers

Best laptop for Solidworks

$399+
Gifts for programmers

Best laptop for Roblox

$399+
Gifts for programmers

Best computer for crypto mining

$499+
Gifts for programmers

Best laptop for Sims 4

$
Gifts for programmers

Best laptop for Zoom

$499
Gifts for programmers

Best laptop for Minecraft

$590

Latest questions

PythonStackOverflow

Common xlabel/ylabel for matplotlib subplots

1947 answers

PythonStackOverflow

Check if one list is a subset of another in Python

1173 answers

PythonStackOverflow

How to specify multiple return types using type-hints

1002 answers

PythonStackOverflow

Printing words vertically in Python

909 answers

PythonStackOverflow

Python Extract words from a given string

798 answers

PythonStackOverflow

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

606 answers

PythonStackOverflow

Python os.path.join () method

384 answers

PythonStackOverflow

Flake8: Ignore specific warning for entire file

360 answers


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

How to specify multiple return types using type-hints

Printing words vertically in Python

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically