Билет 5 - LunexCoding/Basics-of-data-analysis GitHub Wiki
-
Словари в Python
Словарь - неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.
-
Ключевые отличия словарей от списков
Список и словарь представляют собой принципиально разные структуры данных. Список может хранить последовательность объектов в определенном порядке, чтобы вы могли индексироваться в список или перебирать список. Более того, List является изменчивым типом, означающим, что списки могут быть изменены после их создания. Словарь Python представляет собой реализацию хеш-таблицы и является хранилищем ключей. Он не упорядочен и требует, чтобы клавиши были хэш-таблицами. Кроме того, это быстрый поиск по ключу.
Элементы в списке имеют следующие характеристики:
- Они сохраняют свой порядок, если явно не упорядочены (например, путем сортировки списка).
- Они могут быть любого типа, и типы могут быть смешаны.
- Доступ к ним осуществляется с помощью числовых (нулевых) индексов.
Элементы в словаре имеют следующие характеристики:
- Каждая запись имеет ключ и значение.
- Доступ к элементам осуществляется с использованием значений ключа.
- Ключевыми значениями могут быть любые типы хеш-таблиц (т. е. не dict), и типы могут быть смешаны.
- Значения могут быть любого типа (включая другие dict's), а типы могут быть смешанный.
Использование:
- Используйте словарь, если у вас есть набор уникальных ключей, которые сопоставляются с значениями и используют список, если у вас есть упорядоченный набор элементов.
class DataAnalysis:
'''
Напишите функцию to_dict(lst), которая принимает аргумент в виде списка и возвращает словарь,
в котором каждый элемент списка является и ключом, и значением.
Предполагается, что элементы списка будут соответствовать правилам задания ключей в словарях.
'''
def __init__(self, list_=None):
self._list = list_
print(self._list)
def to_dict(self):
return {key: value for key, value in zip(self._list, self._list)}
task = DataAnalysis([1, 3, 'fgd', 'dfg', (3, 4)])
print(task.to_dict())