Python 3.7以降では、辞書型(dict
)が順序を保存するようになりました。これは、collections.OrderedDict
と同等の動作をするようになったことを意味します。
例えば、pandasでデータ集計を行った際に、DataFrameのカラム名を日本語に直した上で順序も入れ替えたいという場合があります。Python 3.7以降では、以下のように辞書を1つ書けばOKです。
import pandas as pd
df = pd.DataFrame(...) # データフレームを作成
# カラムの順序を "name, age, salary" にした上で、日本語に置き換えたい
mapper = {
"name": '名前',
"age": "年齢",
"salary": "年収",
}
output = df[mapper.keys()].rename(columns=mapper)
Python 3.5では、辞書の順序が保存されないため、カラムの順序が入れ替わってしまう可能性があります。そのため、カラムの順序を保存するには、別途順序を表すリストを用意するか、collections.OrderedDict
を使用する必要がありました。
しかし、Python 3.7以降では、順序を保持したまま辞書を使用することができます。これにより、コードがよりDRY(Don’t Repeat Yourself)になり、見た目もシンプルになります。
以上、Python 3.7以降での辞書型の順番入れ替えについて解説しました。この機能を活用して、より効率的なコーディングを行いましょう。