single
条件付き辞書内包表記
メニューを表示するにはスワイプしてください
辞書内包表記に条件を追加することで、辞書を作成する際に動的に要素をフィルタリング可能。
辞書内包表記に条件を付ける構文は次の通り:
{key_expression: value_expression for item in iterable if condition}
12345678910111213141516travel_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)
このコードは travel_wishlist リストを順に処理し、各目的地の予算が$2500以下かどうかを確認。
条件を満たす場合、都市名とその予算が affordable_destinations 辞書に追加される。
123456789101112travel_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}
この例は、前の例と同じ結果を、より簡潔かつ洗練された方法で実現しています。if budget <= 2500 という条件によって予算に基づいて目的地がフィルタリングされ、結果の辞書には手頃な目的地のみが含まれます。
変数を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に格納します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください