データ保存のための namedtuple を作る
データを扱うとき、コードの可読性を上げてデータへアクセスしやすくするために、キー名が使える辞書を使うことがよくあります。Python には、各位置に名前が付いたタプルである namedtuple という別のコンテナがあります。これは、タプル型の名前とフィールド名のリストを渡して作成します。
たとえば、Cookie = namedtuple("Cookie", ['name', 'quantity']) はコンテナを作成し、Cookie('chocolate chip', 1) のように新しい要素を作れます。このとき、name 属性で名前に、quantity 属性で数量にアクセスできます。
この演習では、これまで使ってきたペンギンの体重ログのデータを、よりわかりやすいコードにするために namedtuple へ組み替えていきます。
この演習はコースの一部です
Python のデータ型
演習の手順
collectionsからnamedtupleをインポートします。- 型名を
SpeciesDetails、フィールドを'species'、'sex'、'body_mass'とする namedtupleSpeciesDetailsを作成します。 labeled_entriesという名前のリストを作成します。weight_logリストを反復処理し、各要素をspecies、sex、body_massにアンパックして、各エントリに対してSpeciesDetailsの namedtuple インスタンスを作成し、それをlabeled_entriesに追加します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import namedtuple from collections
from collections import ____
# Create the namedtuple: SpeciesDetails
SpeciesDetails = ____(____, ['species', 'sex', 'body_mass'])
# Create the empty list: labeled_entries
labeled_entries = []
# Iterate over the weight_log entries
for ____, ____, ____ in ____:
# Append a new SpeciesDetails namedtuple instance for each entry to labeled_entries
____
print(labeled_entries[:5])