Откройте для себя весь потенциал встроенного типа словаря Python с помощью этой подробной статьи.
«Прелесть словаря в том, что он является и структурой данных, и хэш-таблицей, так что вы получаете быстрый доступ и быстрый поиск. Это лучшее из обоих миров». — Уэсли Чан
Словарь в Python — это набор неупорядоченных, изменяемых и индексированных элементов данных. Он похож на список или массив в других языках программирования, но с несколькими ключевыми отличиями. В списке элементы данных упорядочены и доступны по их порядковому номеру. В словаре элементы данных хранятся в виде пар ключ-значение, и ключ используется для доступа к соответствующему значению.
Создание словаря Python
Чтобы создать словарь в Python, вы можете использовать функцию dict
или заключить разделенный запятыми список пар ключ-значение в фигурных скобках {}
. Например:
# Using the dict function empty_dict = dict() # Using curly braces colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" }
Вы также можете создать словарь, используя функцию zip
и два списка одинаковой длины, где первый список содержит ключи, а второй список содержит значения. Вот пример:
# Using the zip function keys = ["red", "green", "blue"] values = ["#FF0000", "#00FF00", "#0000FF"] colors = dict(zip(keys, values))
Доступ к элементам в словаре Python
Чтобы получить доступ к элементу в словаре, вы можете использовать квадратные скобки []
и ключ элемента, к которому вы хотите получить доступ. Например:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } red_color = colors["red"] print(red_color) # Output: "#FF0000"
Если ключ, к которому вы пытаетесь получить доступ, не существует в словаре, вы получите исключение KeyError
. Чтобы избежать этого, вы можете использовать метод get
, который возвращает значение по умолчанию, если ключ не найден. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } orange_color = colors.get("orange", "Key not found") print(orange_color) # Output: "Key not found"
Изменение элементов в словаре Python
Чтобы изменить элемент в словаре, вы можете использовать оператор присваивания =
и ключ элемента, который вы хотите изменить. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } colors["red"] = "#F00" print(colors) # Output: {'red': '#F00', 'green': '#00FF00', 'blue': '#0000FF'}
Вы также можете добавить новый элемент в словарь, присвоив значение ключу, которого нет в словаре. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } colors["orange"] = "#FF7F00" print(colors) # Output: {'red': '#FF0000', 'green': '#00FF00', 'blue': '#0000FF', 'orange': '#FF7F00'}
Чтобы удалить элемент из словаря, вы можете использовать метод pop
и ключ элемента, который хотите удалить. Метод pop
удаляет элемент из словаря и возвращает его значение. Если ключ не найден, возвращается значение по умолчанию. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } red_color = colors.pop("red", "Key not found") print(colors) # Output: {'green': '#00FF00', 'blue': '#0000FF'} print(red_color) # Output: "#FF0000"
Вы также можете использовать оператор del
для удаления элемента из словаря. Оператор del
не возвращает значение удаленного элемента. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } del colors["red"] print(colors) # Output: {'green': '#00FF00', 'blue': '#0000FF'}
Чтобы удалить все элементы из словаря, вы можете использовать метод clear
. Этот метод удаляет все элементы из словаря, но сам словарь не удаляется. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } colors.clear() print(colors) # Output: {}
Итерация по словарю Python
Для перебора словаря в Python вы можете использовать цикл for
и метод items
, который возвращает список пар ключ-значение. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } for key, value in colors.items(): print(key, value) # Output: # red #FF0000 # green #00FF00 # blue #0000FF
Вы также можете использовать методы keys
и values
для отдельного перебора ключей и значений. Вот некоторые примеры:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } # Iterating over the keys for key in colors.keys(): print(key) # Output: # red # green # blue # Iterating over the values for value in colors.values(): print(value) # Output: # #FF0000 # #00FF00 # #0000FF
Встроенные функции и методы словаря Python
Словари Python имеют ряд встроенных функций и методов, которые можно использовать для выполнения различных операций. Вот некоторые примеры:
len(dictionary)
: возвращает длину словаря (т. е. количество пар ключ-значение).str(dictionary)
: возвращает строковое представление словаря.dict(zip(keys, values))
: создает новый словарь из двух списков одинаковой длины, где первый список содержит ключи, а второй список содержит значения.dictionary.clear()
: Удаляет все элементы из словаря.dictionary.copy()
: возвращает неглубокую копию словаря.dictionary.fromkeys(keys[, value])
: создает новый словарь с указанными ключами и значением по умолчанию.dictionary.get(key[, default])
: возвращает значение указанного ключа или значение по умолчанию, если ключ не найден.dictionary.items()
: возвращает объект представления, который отображает список пар ключ-значение словаря.dictionary.keys()
: возвращает объект представления, который отображает список ключей словаря.dictionary.pop(key[, default])
: Удаляет указанный ключ и возвращает его значение или значение по умолчанию, если ключ не найден.dictionary.popitem()
: Удаляет произвольную пару ключ-значение из словаря и возвращает ее в виде кортежа.dictionary.setdefault(key[, default])
: возвращает значение указанного ключа или устанавливает значение по умолчанию, если ключ не найден.dictionary.update(other_dictionary)
: Обновляет словарь парами ключ-значение из другого словаря.dictionary.values()
: возвращает объект представления, который отображает список значений словаря.
Понимание словаря Python
Вы можете использовать генераторы словарей для создания нового словаря из итерации в одной строке кода. Понимание словаря состоит из выражения, за которым следует предложение for
, за которым следует предложение if
(необязательно). Вот пример:
# Dictionary comprehension numbers = {x: x**2 for x in range(10)} print(numbers) # Output: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
Вы также можете использовать предложение if
для фильтрации элементов итерируемого объекта. Вот пример:
# Dictionary comprehension with filter even_numbers = {x: x**2 for x in range(10) if x % 2 == 0} print(even_numbers) # Output: {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
Тест на членство в словаре Python
Вы можете использовать операторы in
и not in
, чтобы проверить, существует ли ключ или значение в словаре. Вот пример:
colors = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } # Membership test for keys print("red" in colors) # Output: True print("orange" in colors) # Output: False # Membership test for values print("#FF0000" in colors.values()) # Output: True print("#FF7F00" in colors.values()) # Output: False
Сравнение словарей Python
Вы можете использовать операторы ==
и !=
для сравнения словарей. Два словаря считаются равными, если они имеют одинаковые пары ключ-значение. Вот пример:
colors1 = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } colors2 = { "red": "#FF0000", "green": "#00FF00", "blue": "#0000FF" } colors3 = { "red": "#F00", "green": "#0F0", "blue": "#00F" } # Comparison print(colors1 == colors2) # Output: True print(colors1 == colors3) # Output: False print(colors1 != colors2) # Output: False print(colors1 != colors3) # Output: True
Пример словаря Python
Вот пример того, как вы можете использовать словари в Python для хранения данных и управления ими:
# Dictionary example # Initialize variables employee_1 = { "name": "John Smith", "age": 30, "department": "Sales" } employee_2 = { "name": "Jane Doe", "age": 25, "department": "Marketing" } employee_3 = { "name": "Bob Johnson", "age": 35, "department": "IT" } employees = [employee_1, employee_2, employee_3] # Find employees over 30 over_30 = [e for e in employees if e["age"] > 30] print(over_30) # Output: [{'name': 'Bob Johnson', 'age': 35, 'department': 'IT'}] # Increase ages by 5 for e in employees: e["age"] += 5 print(employees) # Output: [{'name': 'John Smith', 'age': 35, 'department': 'Sales'}, {'name': 'Jane Doe', 'age': 30, 'department': 'Marketing'}, {'name': 'Bob Johnson', 'age': 40, 'department': 'IT'}] # Change department of employee with name "Jane Doe" for e in employees: if e["name"] == "Jane Doe": e["department"] = "HR" print(employees) # Output: [{'name': 'John Smith', 'age': 35, 'department': 'Sales'}, {'name': 'Jane Doe', 'age': 30, 'department': 'HR'}, {'name': 'Bob Johnson', 'age': 40, 'department': 'IT'}]
В заключение, словари — мощная и неотъемлемая часть программирования на Python, обеспечивающая удобный способ хранения данных и управления ими. Благодаря способности эффективно хранить пары «ключ-значение» словари можно использовать в различных приложениях, от хранения записей о сотрудниках до организации подсчета слов в документе. Понимание и использование различных функций и методов словарей может значительно расширить возможности ваших программ Python.