Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 条件付き辞書内包表記 | セクション
Pythonのループ
セクション 1.  20
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)だけでアンパックしようとすると、各サブリストには3つの要素(city、country、budget)が含まれているため、Pythonはリストの各要素を正しく処理できません。これによりエラーが発生し、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実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

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

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

セクション 1.  20
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt