Словникове Включення з Умовою
У словникових включеннях можна додати умову для динамічної фільтрації елементів під час створення словника. Синтаксис словникового включення з умовою виглядає так:
{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 фільтрує напрямки за бюджетом, і у підсумковий словник потрапляють лише доступні напрямки.
Якщо спробувати розпакувати лише дві змінні (city та budget), Python не зможе коректно обробити кожен елемент списку, оскільки кожен підсписок містить три елементи (місто, країна та бюджет). Це призведе до помилки, оскільки Python спробує призначити три елементи двом змінним.
Ось як це виглядатиме:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Цей код викличе ValueError: not enough values to unpack (expected 2, got 3), оскільки кожен елемент у списку має три значення, а ви намагаєтеся розпакувати лише два.
Swipe to start coding
Мандрівник бажає відфільтрувати свій travel_wishlist, щоб залишити лише напрямки в Японії. Для ефективного виконання цього завдання потрібно витягти відповідні пари місто-бюджет у словник.
- Відфільтруйте
travel_wishlistтак, щоб залишилися лише ті напрямки, де країна —"Japan". - Збережіть отриманий словник у змінній
japanese_destinations.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 5
Словникове Включення з Умовою
Свайпніть щоб показати меню
У словникових включеннях можна додати умову для динамічної фільтрації елементів під час створення словника. Синтаксис словникового включення з умовою виглядає так:
{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 фільтрує напрямки за бюджетом, і у підсумковий словник потрапляють лише доступні напрямки.
Якщо спробувати розпакувати лише дві змінні (city та budget), Python не зможе коректно обробити кожен елемент списку, оскільки кожен підсписок містить три елементи (місто, країна та бюджет). Це призведе до помилки, оскільки Python спробує призначити три елементи двом змінним.
Ось як це виглядатиме:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Цей код викличе ValueError: not enough values to unpack (expected 2, got 3), оскільки кожен елемент у списку має три значення, а ви намагаєтеся розпакувати лише два.
Swipe to start coding
Мандрівник бажає відфільтрувати свій travel_wishlist, щоб залишити лише напрямки в Японії. Для ефективного виконання цього завдання потрібно витягти відповідні пари місто-бюджет у словник.
- Відфільтруйте
travel_wishlistтак, щоб залишилися лише ті напрямки, де країна —"Japan". - Збережіть отриманий словник у змінній
japanese_destinations.
Рішення
Дякуємо за ваш відгук!
single