Как создать словарь в Python (литералы и конструкторы)
Узнайте, как создать словарь в Python. Понимание синтаксиса букв, конструктора dict, понимания dict и инициализаторов ключей-значений.
Обзор
Словари — один из самых мощных и часто используемых встроенных типов данных в Python. Словарь — это изменяемая упорядоченная (начиная сPython 3.7) коллекция пар ключ-значение, где каждый ключ должен быть уникальным и хэшируемым (например, строки, числа или кортежи). Словари позволяют выполнять операции поиска с высокооптимизированной средней временной сложностью O(1).
Самый распространенный и прямой способ создания словаря — использование фигурных скобок `{}` с парами ключ-значение, разделенными двоеточиями. Например, `my_dict = {"name": "Alice", "age": 30}` создает заполненный словарь. Чтобы создать пустой словарь, вы можете использовать пустые фигурные скобки `{}` или конструктор `dict()`.
Python также предлагает другие продвинутые методы динамического создания словарей. Конструктор `dict()` может создавать словари из списков кортежей ключ-значение или аргументов ключевых слов. Кроме того, понимание словаря предоставляет мощный способ инициализации словаря из существующей итерации, применяя преобразования к ключам или значениям в режиме реального времени.
Код и вывод выполнения
Этот скрипт демонстрирует несколько способов инициализации и создания словарей в Python.
# 1. Dictionary literal syntax (most common)
user = {"name": "Alice", "age": 28, "verified": True}
print("Literal dict:", user)
# 2. Using the dict() constructor with keyword arguments
config = dict(host="localhost", port=8080, debug=True)
print("Constructor dict:", config)
# 3. Creating dictionary from key-value pairs (tuples)
pairs = [("id", 101), ("status", "active")]
status_dict = dict(pairs)
print("From tuples:", status_dict)
# 4. Dictionary comprehension (dynamic creation)
squares = {x: x**2 for x in range(1, 5)}
print("Comprehension:", squares)Literal dict: {'name': 'Alice', 'age': 28, 'verified': True}
Constructor dict: {'host': 'localhost', 'port': 8080, 'debug': True}
From tuples: {'id': 101, 'status': 'active'}
Comprehension: {1: 1, 2: 4, 3: 9, 4: 16}Пошаговая реализация
- Используйте фигурные скобки {} с парами ключ: значение, чтобы создать словарный литерал.
- Вызовите dict(), чтобы создать пустой словарь, или создайте его, используя аргументы ключевого слова.
- Передайте список кортежей «ключ-значение» в dict(), чтобы преобразовать реляционные массивы в объект словаря.
Часто задаваемые вопросы
Можно ли использовать элементы списка или словаря в качестве ключей словаря?
Нет, ключи словаря должны быть хешируемыми (неизменяемыми). Поскольку списки и словари изменяемы, они не могут быть ключами. Кортежи, строки и целые числа являются допустимыми ключами.
Как создать словарь со значениями по умолчанию для набора ключей?
Вы можете использовать dict.fromkeys(keys_list, default_value) для создания словаря, в котором все ключи имеют одно и то же значение по умолчанию.
Связанные темы
Узнайте, как выполнять цикл или перебирать словарь Python. Откройте для себя методы перебора ключей, значений и пар «ключ-значение» с помощью понятных и работоспособных примеров.
Как добавить и обновить ключи в словаре PythonУзнайте, как добавлять элементы или обновлять пары «ключ-значение» в словаре Python. Изучите квадратные скобки, метод обновления и параметры оператора слияния.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Объяснение переменных и типов данных Python
Понимать переменные Python и основные типы данных (строки, целые числа, числа с плавающей запятой, логические значения). Полное руководство для начинающих по распределению памяти в Python.
Шпаргалка по словарным методам Python
Изучите словарные методы Python. Полное справочное руководство по вставке, извлечению, обновлению и проверке пар ключ-значение.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.