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)だけでアンパックしようとすると、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に格納します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください