В этом руководстве по Python я объясню значение приращения в словаре Python и различные методы, присутствующие в Python для увеличения значения в словаре Python, с помощью наглядных примеров.
- С использованием проверки if
- С использованием метода get()
- Используя понимание словаря
- С помощью defaultdict
- С использованием setdefault()
- Спомощью блока try-кроме
- С помощью Counter() из коллекций
- Примеры
- Как увеличить значение
- Увеличение значения, если ключ существует
- Значение приращения или установка dict
- Увеличение значения Python dict
- Значение приращения вложенного словаря
- Увеличение на 1
- Заключение
С использованием проверки if
Метод if сначала проверяет, существует ли ключ в словаре Python. Если да, то его значение увеличивается. Если нет, он инициализирует ключ заданным значением.
Например: давайте рассмотрим ситуацию, когда мы отслеживаем продажи различных фруктов в супермаркете в Техасе с помощью Python.
Словарь Python с именем Fruit_sales инициализируется двумя парами ключ-значение. Ключи представляют названия фруктов, а значения представляют количество продаж.
fruit_sales = {"apple": 100, "banana": 50} fruit = ["orange", "apple"] for fruit in fruit: if fruit in fruit_sales: fruit_sales[fruit] += 1 else: fruit_sales[fruit] = 1 print(fruit_sales)
Вывод: цикл for перебирает каждый элемент списка Fruit Python. Внутри цикла код проверяет, является ли текущий фрукт(из списка) уже ключом в словаре.
Если фрукт найден в словаре Python, соответствующее значение(количество продаж) увеличивается на 1. Если фрукт не найден в словаре, в словарь добавляется новая пара ключ-значение с именем фрукта в качестве ключа. и значение установлено равным 1(что указывает на 1 продажу).
{'apple': 101, 'banana': 50, 'orange': 1}
С использованием метода get()
Метод get() словаря в Python извлекает значение ключа, если он существует, или в противном случае возвращает значение по умолчанию. Это краткий способ обновления значений словаря без явной проверки существования ключа.
Например: давайте рассмотрим ситуацию, когда мы отслеживали и вели учет посещаемости сотрудников компании-разработчика программного обеспечения в Калифорнии.
Посещаемость словаря Python отслеживает, сколько раз каждый сотрудник посещал офис. Список с именем «Сотрудник» содержит имена сотрудников, которые сегодня посетили офис.
attendance = {"John": 5, "Alice": 3, "Bob": 5, "Peter": 4, "Sam": 1} Employee = ["John", "Bob", "Peter", "Rob"] for employee in Employee: attendance[employee] = attendance.get(employee, 0) + 1 print(attendance)
Выходные данные: для каждого имени в списке на Python код добавляет 1 к счетчику посещаемости в словаре. Если имя из списка еще не находится в словаре, оно добавляется со счетом 1.
{'John': 6, 'Alice': 3, 'Bob': 6, 'Peter': 5, 'Sam': 1, 'Rob': 1}
Используя понимание словаря
Понимание словарей предлагает краткий способ создания или обновления словарей в Python. Если мы хотим увеличить несколько или все значения в словаре одновременно, этот метод эффективен.
Например: рассмотрим ситуацию, когда аэропорт в Чикаго хочет увеличить цену билета на определенные направления из-за спроса через Python.
ticket_prices = {"Los Angeles": 200, "New York": 250} increase_city = "New York" ticket_prices = {city: price + 20 if city == increase_city else price for city, price in ticket_prices.items()} print(ticket_prices)
Выходные данные: аэропорт увеличивает цену билета на 20 долларов США на рейсы в Нью-Йорк с использованием словаря Python.
{'Los Angeles': 200, 'New York': 270}
С помощью defaultdict
Когда мы постоянно обновляем и просматриваем значения, не беспокоясь о проверках существования ключей в словаре Python. Мы можем использовать defaultdict, который создает словарь, предоставляющий значение по умолчанию для отсутствующих ключей, используя класс из модуля коллекций.
Например, давайте рассмотрим ситуацию, когда мы отслеживали данные об арендованных автомобилях для службы проката автомобилей в Нью-Йорке через Python.
from collections import defaultdict rentals = defaultdict(int) rentals["SUV"] += 1 print(rentals)
Вывод: Каждый раз, когда арендуется тип автомобиля(например, внедорожник), счетчик увеличивается. Если этот тип автомобиля арендуется впервые, он автоматически инициализируется со счетом 1.
defaultdict(, {'SUV': 1})
С использованием setdefault()
Метод setdefault() проверяет, присутствует ли ключ в словаре Python. Если ключ присутствует, он возвращает его значение. Если нет, он устанавливает значение по умолчанию и возвращает его.
Например: мы пытаемся подсчитать количество посетителей из разных штатов с помощью Python. Каждый раз, когда приходит посетитель из определенного штата, мы хотим увеличить счетчик этого штата.
visitors = {} state = "California" visitors.setdefault(state, 0) visitors[state] += 1 print(visitors)
Вывод: Функция setdefault() гарантирует, что «Калифорния» является ключом в словаре Python посетителя, инициализируя его значением 0, если его там нет. Как только это будет гарантировано, мы увеличим счетчик.
{'California': 1}
Спомощью блока try-кроме
Вместо проверки наличия ключа в словаре Python мы можем напрямую попытаться увеличить значение и поймать ошибку KeyError, если ключ не существует, а затем установить значение по умолчанию. Итак, для этого мы воспользуемся блоком try-кроме.
Например: рассмотрим ситуацию, когда нам поручено отслеживать и хранить продажи различных блюд из закусочной в Неваде с помощью нашего программирования на Python.
dish_sales = {"burger": 20, "salad": 15} dishes = ["pasta", "burger", "pizza"] for dish in dishes: try: dish_sales[dish] += 1 except KeyError: dish_sales[dish] = 1 print(dish_sales)
Выходные данные: этот код обновляет количество продаж блюд. Если блюдо уже есть в словаре «dish_sales» в Python, оно добавляет единицу к количеству продаж. Если блюда нет, оно добавляется со счетом 1.
{'burger': 21, 'salad': 15, 'pasta': 1, 'pizza': 1}
С помощью Counter() из коллекций
Counter() — это подкласс словаря, предназначенный для подсчета хешируемых объектов в Python.
Он по своей сути управляет отсутствующими ключами, позволяя выполнять операции прямого увеличения без предварительной проверки существования ключа.
Например: рассмотрим ситуацию, когда пекарня в Сиэтле отслеживает продажу различных видов выпечки с помощью программирования на Python.
from collections import Counter pastry_sales = Counter({"donut": 10, "croissant": 5}) pastry_sales["donut"] += 1 print(pastry_sales)
Вывод: объект Counter с именем Pastry_sales инициализируется в Python с 10 пончиками и 5 круассанами. Затем количество продаж «пончика» увеличивается на 1.
Counter({'donut': 11, 'croissant': 5})
Примеры
Исходный код:
from collections import defaultdict init_dict = defaultdict(int) init_dict['George'] += 6 print("Increment value:",init_dict)
В приведенном выше коде сначала мы импортировали метод defaultdict. Теперь создайте переменную init_dict и назначьте метод defaultdict, в который мы должны передать целочисленное значение. Как только вы напечатаете «init_dict», результат отобразится в виде словаря.
Вот выполнение следующего кода:
Increment value: defaultdict(, {'George': 6})
Как увеличить значение
Это еще один подход к увеличению значения в словаре Python. Если данный ключ не содержится в словаре, это приведет к ошибке ключа. Чтобы устранить эту ошибку, мы можем использовать блок try/Exception.
Пример:
emp_dict = dict.fromkeys(['John','Micheal','George'], 9) new_k = 'Oliva' try: emp_dict[new_k] += 9 except KeyError: emp_dict[new_k] = 9 print("Increment value:",emp_dict)
Вот результат выполнения следующего кода:
Increment value: {'John': 9, 'Micheal': 9, 'George': 9, 'Oliva': 9}
Используя метод dict.get(), мы можем увеличить значение в словаре.
Исходный код:
variable_dict = {"Australia":178} variable_dict["Germany"] = variable_dict.get("Germany", 0) + 68 print("Increment value:",variable_dict)
В приведенном выше коде мы присваиваем dict[key] значению 68. Теперь мы можем использовать метод dict.get(), который возвращает значение, если ключ доступен в словаре, в противном случае он вернет 0.
Increment value: {'Australia': 178, 'Germany': 68}
Вы можете обратиться к приведенному ниже снимку экрана:
Увеличение значения, если ключ существует
Используя условие оператора if, мы можем решить эту конкретную задачу. Чтобы проверить, существует ключ или нет, мы можем использовать оператор условия «if», и если он присутствует в словаре, он увеличит значение.
Пример:
Country_name = {'China' : 189, 'France' : 498, 'Bangladesh' :629, 'Turkey' : 703} new_k = 'France' if new_k in Country_name: print("old dictionary:",Country_name) Country_name[new_k] += 2 print("Modified dictionary:",Country_name) else: print('Not exist')
В приведенном выше коде сначала мы инициализируем словарь Country_name, который состоит из названия страны. В этом примере ключами словаря являются названия стран. Теперь нам нужно увеличить значение ключа «Франция». Для этого сначала мы создаем переменную и назначаем ключевой элемент.
После этого мы можем использовать условие if, чтобы проверить, доступен ли ключ «Франция» в словаре или нет. Если данное условие верно, значение ключа увеличится на единицу, в противном случае отобразится сообщение «Не существует».
old dictionary: {'China': 189, 'France': 498, 'Bangladesh': 629, 'Turkey': 703} Modified dictionary: {'China': 189, 'France': 500, 'Bangladesh': 629, 'Turkey': 703}
Вот скриншот следующего кода:
Значение приращения или установка dict
Используя метод обработки исключений, мы будем использовать блок try-кроме, и в этом примере мы попытаемся увеличить значение заданного значения из набора.
Исходный код:
new_set = {92,78,56,88} update = 78 try: new_set[update] += 1 except KeyError: new_set[update] = 1 print(new_set)
Примечание. После того, как вы напечатаете «new_set», результат покажет ошибку: объект «set» не подлежит подписке.
Traceback(most recent call last): File "C:\Users\kumar\PycharmProjects\pythonProject1\main.py", line 5, in new_set[update] += 1 TypeError: 'set' object is not subscriptable
Вы можете обратиться к приведенному ниже снимку экрана:
Теперь мы попробуем второй метод setdefault() для решения этой конкретной задачи. Другой подход к получению значения приращения по заданному набору
Используя метод setdefault(), мы можем принимать значения в качестве входных данных и возвращать обновленное значение. Если значение существует в существующем словаре, оно будет увеличиваться.
Исходный код:
new_set = {92,78,56,88} update = 78 new_set[update] = new_set.setdefault(update,0) + 1 print(new_set)
Выход:
Traceback(most recent call last): File "C:\Users\kumar\PycharmProjects\pythonProject1\main.py", line 4, in new_set[update] = new_set.setdefault(update, 0) + 1 AttributeError: 'set' object has no attribute 'setdefault'
Как вы можете видеть на снимке экрана выше, на выходе возникает ошибка AttributeError: объект «set» не имеет атрибута «setdefault».
Вывод: в наборе Python элементы не могут быть изменены и он содержит только уникальные значения. Поэтому мы не можем увеличить значение, указанное в наборе.
Увеличение значения Python dict
Для выполнения этой задачи мы можем использовать концепцию метода defaultdict(). В Python модуль сбора предоставляет библиотеку defaultdict, которая является подклассом класса словаря, который всегда возвращает объект.
Метод defaultdict() никогда не выдает ошибку ключа, он создает новую пару ключ-значение.
Пример:
Давайте на примере и проверим, как увеличить значение в словаре Python.
from collections import defaultdict new_val_key = {'Rose' : 845, 'Lotus' : 169, 'Lilly' : 490, 'Tulip' : 735} quantity = defaultdict(int,new_val_key) updated_key = 'Lotus' new_val_key[updated_key] += 4 print(new_val_key)
В приведенной выше программе мы создали словарь, но сначала нам нужно импортировать метод defaultdict из модуля сбора данных. Теперь мы будем использовать метод defaultdict(), в котором мы передали целое число в качестве аргумента, а вторым аргументом является словарь «new_val_key».
{'Rose': 845, 'Lotus': 173, 'Lilly': 490, 'Tulip': 735}
Вот скриншот следующего кода:
Значение приращения вложенного словаря
В этом примере мы создали вложенный словарь, содержащий несколько словарей. Теперь мы хотим проверить, как можно увеличить значение во вложенном словаре.
Для выполнения этой задачи мы можем использовать концепцию условия «если», и это проверит, существует ли ключ в словаре или нет.
Исходный код:
nested_dict ={'dict1': {'Germany' : 665, 'Australia' : 178, 'England' : 149, 'France' : 154}, 'dict2': {'b':189,'x':846,'p':489,'e':390}} new_k ='dict1' innerkey= 'China' if new_k in nested_dict and innerkey in nested_dict[new_k]: nested_dict[new_k][innerkey] += 1 elif new_k in nested_dict: nested_dict[new_k][innerkey] = 107 print(nested_dict)
Вот выполнение следующего данного кода
{'dict1': {'Germany': 665, 'Australia': 178, 'England': 149, 'France': 154, 'China': 107}, 'dict2': {'b': 189, 'x': 846, 'p': 489, 'e': 390}}
Увеличение на 1
Используя функцию get(), мы можем увеличить значение словаря, и этот метод принимает значение ключа в качестве параметра и проверяет условие: если ключ не содержится в словаре, он вернет значение по умолчанию. Если данный ключ существует в словаре, он всегда будет возвращать значение ключа.
Синтаксис:
dict.get(key, default=None)
Пример:
Давайте возьмем пример и проверим, как увеличить значение в словаре Python.
new_dictionary= {'potter' : 743, 'Oliva' : 189, 'Elijah' : 634, 'George' : 439} modify_key = 'Elijah' new_dictionary[modify_key] = new_dictionary.get(modify_key,0) + 1 print("Updated dictionary:",new_dictionary)
В приведенном выше примере мы создали словарь и теперь хотим увеличить значение с помощью ключа «Илия». Для этого мы создали переменную modify_key и присвоили ей ключ.
После этого мы использовали функцию dict.get() и внутри этой функции передали ключ в качестве аргумента, и по умолчанию значение второго аргумента равно 0.
Updated dictionary: {'potter': 743, 'Oliva': 189, 'Elijah': 635, 'George': 439}
Вы можете обратиться к приведенному ниже снимку экрана.
Как вы можете видеть на снимке экрана, ключ «Илия» содержится в словаре, и его значение увеличивается с 634 до 635.
Заключение
В этом руководстве объясняется, что подразумевается под увеличением значения в словаре Python, а также семь различных методов, представленных для увеличения значения в словаре, таких как «if check», «метод get()», «defaultdict», «setdefault()», « блок try-кроме», «понимание словаря» и «класс Counter()» с наглядными примерами.
После понимания всех методов выбор остается за программистом и вариантом их использования. И как они используют эти инструменты для реализации этих методов в своей задаче, чтобы облегчить ее.