При работе над проектом Python данные сохранялись в файле json, который можно преобразовать в словарь Python. Мне хотелось внести так много изменений, например добавить новые ключи и значения, удалить ненужные данные и т. д.
Если вы попытаетесь внести изменения вручную, это займет много времени, поэтому Python предоставляет несколько встроенных методов, которые помогут вам вносить изменения в словарь путем вызова методов словаря Python.
- Как использовать методы Dict
- Метод update()
- Метод keys()
- Метод values()
- Функция items()
- Метод get()
- Метод fromkeys()
- Метод setdefault()
- Метод clear()
- Метод popitem()
- Метод Pop()
Как использовать методы Dict
Сначала разберемся в сценарии, действительно важно использовать правильный метод в правильной ситуации. Давайте рассмотрим сценарий на примере:
emp_data = {"names": ["john", "jake", "peter", "robert"], "age": [34,23,45,28], "salary": [12000, 15000, 25000, 18000]}
Предположим, это данные моих сотрудников, и я хочу внести в них некоторые изменения, например добавить новый ключ, увеличить зарплату на 10% и т. д.
В этой ситуации вы можете использовать некоторые словарные методы для определения определенных элементов ключа и т. д.
Метод update()
Сначала мы увидим метод update() словаря в Python.
Метод обновления позволяет добавлять новые ключи и значения, если ключ не существует, а если он существует, он изменит его значение.
Синтаксис:
dict.update({key, value})
- {key, value}: здесь, если данный ключ уже существует, он изменит свое значение. Вместо указания пары ключ-значение вы можете напрямую передать словарь, чтобы он его обновил.
Давайте разберемся, как метод update() будет работать в методах dict Python.
emp_data = {"names": ["john", "jake", "peter", "robert"], "age": [34,23,45,28], "salary": [12000, 15000, 25000, 18000]} data = {"id":[1001,1002,1003,1004]} data.update(emp_data) print(data,"\n") data.update({"present_all":True}) print(data)
В приведенном выше коде мы используем метод update() обоими способами. У нас есть словарь emp_data, затем появился еще один словарь, в котором был id, и нам нужно добавить его с помощью emp_data.
Итак, сначала мы использовали метод update(), например, data.update(emp_data) обновит словарь данных, добавив все emp_data.
Опять же, мы используем метод update(), передавая ключ и значение непосредственно в метод обновления, например, data.update ({“present_all”:True}), поэтому сначала он проверит, присутствует ли ключ Present_all в dict или нет. Он добавит его как новый ключ, если он не существует.
Метод keys()
Теперь мы объясним метод keys(), встроенный метод Python.
Метод keys() используется для получения доступных ключей в словаре и возвращает значения типа dict_keys ([‘key1’, ‘key2’, ‘key3’]).
Синтаксис:
dictionary_name.keys()
- dictionary_name.keys(): этот метод создан специально для dict, поэтому он не будет работать для других коллекций.
Давайте разберемся, почему метод key() станет важной частью методов Python Dict.
employee_info = { "John Doe": {"position": "Manager", "department": "Sales", "salary": 70000}, "Jane Smith": {"position": "Engineer", "department": "Engineering", "salary": 80000}, "Mike Johnson": {"position": "Analyst", "department": "Finance", "salary": 65000} } print(employee_info.keys())
В приведенном выше коде у нас есть словарь с именем сотрудника_info, и нам нужно получить все ключи из словаря. Итак, мы используем метод key() следующим образом: print (employee_info.keys()), поэтому он дает мне все ключи из dict.
Мы получили это как результат dict_keys ([‘Джон Доу’, ‘Джейн Смит’, ‘Майк Джонсон’]), но если мы хотим получить доступ к любому значению по его индексному номеру, вы можете преобразовать его в список, используя list() (employee_info.keys()).
Метод values()
Чтобы получить все значения из словаря, мы можем использовать метод values(), встроенный метод в Python, специально созданный для типа данных dict для получения значений. Он вернет такие значения: dict_values ([значение1, значение2,значение3…]).
Синтаксис:
dictionary.values()
Давайте посмотрим, как метод values() работает как словарная функция Python.
emp_data = {"names": ["john", "jake", "peter", "robert"], "age": [34,23,45,28], "salary": [12000, 15000, 25000, 18000]} print(emp_data.values())
В приведенном выше коде у нас есть словарь с именем emp_data, и нам нужно получить все существующие значения из словаря в Python. Итак, мы используем метод values(), который вернет dict_values() и все значения внутри него.
Функция items()
Когда нам нужно получить доступ как к ключам, так и к значениям, мы можем использовать метод item() в Python, который будет возвращать ключи и значения dict во вложенных кортежах, например dict_items ([(‘key’, ‘value]).
Синтаксис:
dict.items()
Пример использования метода items() из методов Python dict:
emp_data = {"names": ["john", "jake", "peter", "robert"], "age": [34,23,45,28], "salary": [12000, 15000, 25000, 18000]} print(emp_data.items())
В приведенном выше коде у нас есть словарь с именем emp_data, и нам нужно получить все ключи и значения из словаря. Итак, мы используем метод items() следующим образом: emp_data.items(), и он вернет все пары ключ-значение в списке вложенных кортежей.
Метод get()
Теперь мы увидим, как использовать метод get() в Python.
Метод get() получает доступ к определенному значению, передавая имя ключа в качестве параметра.
Преимущество использования этого метода заключается в том, что если данный ключ не существует, он не выдаст никаких ошибок, вместо этого он вернет None.
Он также принимает второй параметр как значение по умолчанию. Предположим, вы хотите добавить данный ключ в первом параметре в словарь, если он еще не существует, и он примет это заданное значение по умолчанию в качестве своего значения.
Синтаксис:
dict.get("key")
- dict.get(«key»): если вы не хотите, чтобы вывод был None и хотите добавить этот ключ в dict, вы можете указать второй параметр, например этот dict.get («key», значение по умолчанию).
Давайте посмотрим, как метод get() работает из методов dict Python.
weather_data = { "Monday": {"temperature": 25, "humidity": 60, "wind_speed": 10}, "Tuesday": {"temperature": 22, "humidity": 65, "wind_speed": 15}, "Wednesday": {"temperature": 27, "humidity": 55, "wind_speed": 8} } check = weather_data.get("Wednesday") print(check)
В приведенном выше коде у нас есть данные о погоде на каждый день. Но нам нужно получить данные только за среду. Поэтому мы используем метод get(), например, Weather_data.get(“Среда”), который вернет только это конкретное значение ключа среды.
Метод fromkeys()
Метод fromkeys() — это метод класса dict в Python. Он создает новый словарь из существующего словаря. Он возьмет все ключи из старого словаря и добавит их в новый без добавления значений.
Если вы не укажете значение по умолчанию во втором параметре, значение по умолчанию будет нулевым.
Синтаксис:
var_name = dict.fromkeys(old_dict, default_value)
Давайте разберемся с методом dict.fromkeys() на практическом примере.
restaurant_menu = { "Burger": {"price": 10, "category": "Main", "is_vegetarian": False}, "Salad": {"price": 8, "category": "Appetizer", "is_vegetarian": True}, "Pizza": {"price": 12, "category": "Main", "is_vegetarian": True} } new_menu = dict.fromkeys(restaurant_menu) print(new_menu) new_menu = dict.fromkeys(restaurant_menu, "Unknown") print(new_menu)
В приведенном выше коде у нас есть restaurant_menu с элементами в качестве ключа и другими данными в качестве значений. И мы решили изменить данные товаров, например их цену.
Итак, мы создали новое меню и взяли те же элементы из старого меню, используя метод fromkeys(), например этот dict.fromkeys (restaurant_menu, «Unknown»), и на данный момент задали «неизвестно» в качестве значения по умолчанию, чтобы мы могли обновить это позже.
Метод setdefault()
Метод setdefault() также используется для получения значения данного ключа, если он существует, а если он не существует в словаре, он вернет None.
Вы можете указать значение по умолчанию во втором параметре, чтобы в словарь была добавлена новая пара ключ-значение.
Синтаксис:
dict.setdefault("key", default value)
- setdefault («ключ», значение по умолчанию): здесь значение по умолчанию является необязательным параметром; если вы не укажете значение по умолчанию, то по умолчанию в качестве значения будет использоваться None.
Давайте разберемся, как метод setdefault() будет работать с методами dict Python.
car_details = {"BMW":150000, "Audi": 120000, "Jaguar": 140000} car_details.setdefault("Mercedes","Not Available") print(car_details)
В приведенном выше коде у нас есть данные car_details, и нам нужно сделать программу, которая, если пользователь ищет какую-либо машину, то она должна показывать ее цену. Если машины нет в словаре, то вместо предоставления ключа ошибка, он должен записать поиск пользователя, добавить его в словарь в качестве ключа и выдать пользователю сообщение «Недоступно».
В этой ситуации мы используем метод setdefault() следующим образом: car_details.setdefault(«Mercedes», «Недоступно»).
Вы можете видеть, что пользователь все еще ищет Mercedes, которого нет в словаре; он не выдает ошибку и не добавляет этот ввод в качестве ключа и «Недоступно» в качестве значения.
Метод clear()
Чтобы удалить все пары ключ-значение из словаря, мы можем использовать метод Clear() в Python. Он может удалить все элементы из коллекции Python.
Синтаксис:
dict.clear()
- Clear(): этот метод работает для каждой коллекции в Python.
Давайте посмотрим, как мы можем использовать метод clear() для словаря в Python.
product_inventory = { "Laptop": {"brand": "Dell", "price": 1200, "stock": 50}, "Smartphone": {"brand": "Apple", "price": 1000, "stock": 100}, "Headphones": {"brand": "Sony", "price": 150, "stock": 200} } product_inventory.clear() print("Product Inventory:",product_inventory)
В приведенном выше коде у нас есть данные product_inventory, и мне нужно было удалить из данных все продукты.
Итак, мы используем метод clear(), например, product_inventory.clear(), он сделает словарь пустым.
Метод popitem()
Метод popitem() специально создан для типа данных словарь. Он удаляет последнюю пару ключ-значение из словаря Python. Он не принимает никаких аргументов, поэтому может удалить только последнюю пару ключ-значение.
Синтаксис:
dict_name.popitem()
- dict_name.popitem(): если вы попытаетесь использовать этот метод для разных коллекций, возникнет ошибка.
customer_orders = { "Order001": {"customer": "John", "items": ["Laptop", "Smartphone"], "total": 2200}, "Order002": {"customer": "Emily", "items": ["Headphones"], "total": 150}, "Order003": {"customer": "Michael", "items": ["Laptop", "Smartphone", "Headphones"], "total": 2350} } cancel_orders = customer_orders.popitem() print("This is list of customer orders: ", customer_orders) print("\n\nCancelled orders: ", cancel_orders)
В приведенном выше коде мы взяли записи заказов клиентов из словаря и искали функцию, которая могла бы удалить самый последний заказ из словаря, а также показать пользователю отмененный заказ.
В этой ситуации мы используем метод popitem(), который работает следующим образом: cancel_orders = customer_orders.popitem() удаляет последнюю пару ключ-значение из словаря и добавляет этот заказ в переменную cancel_orders.
Метод Pop()
В предыдущем примере мы видели, как метод popitem() работает в словаре, но вы не можете использовать этот метод, если хотите удалить из словаря первый или какой-то средний элемент.
Чтобы решить эту проблему, мы можем использовать метод pop() в Python. Он используется для удаления элемента из любой коллекции в Python. Обычно мы указываем значение индекса элемента в качестве параметра для его удаления, но в случае словаря вы можете указать имя ключа, чтобы оно удалило эту пару ключ-значение из словаря в Python.
customer_orders = { "Order001": {"customer": "John", "items": ["Laptop", "Smartphone"], "total": 2200}, "Order002": {"customer": "Emily", "items": ["Headphones"], "total": 150}, "Order003": {"customer": "Michael", "items": ["Laptop", "Smartphone", "Headphones"], "total": 2350} } cancelled_orders = customer_orders.pop("Order001") print("Updated Data:",customer_orders) print("\n\nCancelled Order:", cancelled_orders)
В приведенном выше коде мы используем тот же пример, что и предыдущий. Но теперь нам нужно удалить первую пару ключ-значение из словаря.
Итак, мы используем метод pop() следующим образом: cancelled_orders = customer_orders.pop(“Order001”), поэтому он сохранит удаленное значение в переменной cancelled_order.