Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Словникове Включення з Умовою | The For Loop
Підручник з Циклів Python

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
Примітка

Якщо спробувати розпакувати лише дві змінні (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.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 20
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

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
Примітка

Якщо спробувати розпакувати лише дві змінні (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.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 20
single

single

some-alt