上級Python開発コース
チャプター
>
レベル
高度なリスト
ネストされたリストの作成
目標
ネストリストを使用して、調味料をスパイスラックに正しく収納してください。
スパイスラックの一つは空で、適切に再補充する必要があります。保管庫には調味料がありますが、正しく収められ、整理されてスパイスラックに配置されなければなりません。
アイテムの量が多く、さらにスパイスラック内の異なる棚に保管されているため、通常のリストや辞書では十分ではありません。このような場合には、ネストリスト を使用できます。これは、内部に1つ以上のリストを含むリストです。
調味料を収納するためには、まずアイテムを正しく保管するための瓶を手に入れる必要があります。金色のXマークの場所に歩いて行き、木箱に向かって、collect() 関数を使用して "empty jar" を取得し、保管を容易にしてください。
瓶を集めたら、木製の木箱の前にある薄いXマークへ歩いて行ってください。このレベルでは、各木箱ごとに1つ、合計4つのリスト定数が用意されています。これらは crate1、crate2、crate3、および crate4 です。これらのリスト定数を使って speak() 関数を使用し、各木箱の内容を確認してください。定数は右から左に対応しており、例えば player.speak(crate1) のように使用します。
木箱の内容を確認したら、リスト内包表記 を使って、リスト定数内の不要なアイテムを除いた新しいリストを作成してください。もし木箱の内容に "package"、"string"、または "stuffing" が含まれている場合は、前の章と同じ方法でリストを整理します。例えば:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
上記のコードは、項目に "string" という単語が含まれていない新しいリストを作成します。リストはそれぞれ herbs、spices、salts、および sugars と命名されるべきです。リスト内のアイテムにその名が含まれているので、どのリストをどの名前にすべきかが分かります。
4つのリストがすべて作成されたら、これらをネストリストに結合する時が来ました。seasonings という名前のリストを作成し、以下のように作成したリストをその中に追加してください:
seasonings = [ ] seasonings.append(herbs) .......
すべてのアイテムがネストリストにまとめられたら、緑のカーペット上の濃いXマークの場所へ歩いて行き、棚に向かってください。speak() 関数と seasonings のネストリストを組み合わせて各棚のアイテムを確認し、その後 place() 関数を使用してレベルを完了します。例えば、player.speak(seasonings) のように。