Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 条件付きディクショナリ内包表記 | リスト内包表記と辞書内包表記
/
Pythonループチュートリアル
セクション 4.  4
single

single

book条件付きディクショナリ内包表記

メニューを表示するにはスワイプしてください

辞書内包表記に条件を追加することで、辞書を作成しながら動的に要素をフィルタリング可能。

辞書内包表記で条件を指定する構文:

{key_expression: value_expression for item in iterable if condition}
12345678910111213141516
travel_wishlist = [ ['Paris', 'France', 2000], ['Tokyo', 'Japan', 3000], ['New York', 'USA', 2500], ['Kyoto', 'Japan', 1500], ['Sydney', 'Australia', 4000] ] # Filter destinations within a $2500 budget using a for loop affordable_destinations = {} for city, country, budget in travel_wishlist: if budget <= 2500: # Check if the budget is within the limit affordable_destinations[city] = budget print(affordable_destinations)
copy

このコードは travel_wishlist リストを順に処理し、各目的地の予算が$2500以下かどうかを確認。条件を満たす場合、都市名とその予算を affordable_destinations 辞書に追加。

123456789101112
travel_wishlist = [ ['Paris', 'France', 2000], ['Tokyo', 'Japan', 3000], ['New York', 'USA', 2500], ['Kyoto', 'Japan', 1500], ['Sydney', 'Australia', 4000] ] # Use dictionary comprehension to filter destinations affordable_destinations = {city: budget for city, country, budget in travel_wishlist if budget <= 2500} print(affordable_destinations) # Output: {'Paris': 2000, 'New York': 2500, 'Kyoto': 1500}
copy

この例は、前の例と同じ結果を、より簡潔かつ洗練された方法で実現しています。条件 if budget <= 2500 により予算に基づいて目的地がフィルタリングされ、結果の辞書には手頃な目的地のみが含まれます。

Note
注意

変数を2つ(cityとbudget)だけでアンパックしようとすると、Pythonはリストの各要素を正しく処理できません。各サブリストには3つの要素(city、country、budget)が含まれているためです。これにより、Pythonは3つの要素を2つの変数に割り当てようとしてエラーが発生します。

以下のようになります:

affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}

このコードは ValueError: not enough values to unpack (expected 2, got 3) を発生させます。リストの各要素に3つの値があり、2つの変数でアンパックしようとしているためです。

タスク

スワイプしてコーディングを開始

旅行者が自分のtravel_wishlistから日本の目的地のみを抽出したいと考えています。これを効率的に行うために、該当する都市と予算のペアを辞書として抽出します。

  • travel_wishlistをフィルタリングし、国が"Japan"である目的地のみを含めます。
  • 結果の辞書japanese_destinationsに格納します。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt