В Python вы можете инициализировать словарь, используя либо литералы фигурных скобок {}, либо конструктор dict(). Оба метода широко используются, и выбор между ними часто зависит от личных предпочтений или конкретных требований кода. Приведу примеры различных методов инициализации словаря:
-
Литералы фигурных скобок:
# Empty dictionary my_dict = {} # Dictionary with initial key-value pairs my_dict = {'key1': 'value1', 'key2': 'value2'} -
Конструктор dict():
# Empty dictionary my_dict = dict() # Dictionary with initial key-value pairs my_dict = dict(key1='value1', key2='value2') # Dictionary from a list of tuples my_dict = dict([('key1', 'value1'), ('key2', 'value2')]) -
Понимание словаря:
# Creating a dictionary using a comprehension my_dict = {key: value for key, value in some_iterable} -
Использование Zip:
# Creating a dictionary from two lists using zip keys = ['key1', 'key2'] values = ['value1', 'value2'] my_dict = dict(zip(keys, values)) -
Использование метода fromkeys():
# Creating a dictionary with default values for specified keys keys = ['key1', 'key2'] default_value = 'default' my_dict = dict.fromkeys(keys, default_value) -
Использование изменяемого сопоставления:
# Creating a dictionary by inheriting from MutableMapping from collections.abc import MutableMapping class MyDict(MutableMapping): def __init__(self, *args, kwargs): self.store = dict() self.update(dict(*args, kwargs)) def __getitem__(self, key): return self.store[key] def __setitem__(self, key, value): self.store[key] = value def __delitem__(self, key): del self.store[key] def __iter__(self): return iter(self.store) def __len__(self): return len(self.store) my_dict = MyDict(key1='value1', key2='value2')