Словари в Python. 11 ЛК Словари в python. Словари в Python Словарь набор объектов, каждый из которых является парой вида ключ значение
Скачать 0.51 Mb.
|
Словари в Python Словарь– набор объектов, каждый из которых является парой вида ключ : значение. Ключи используются для доступа к значениям элементов словаря так же, как индексы для доступа к элементам списка. Обращение к элементу словаря в Python Добавление нового элемента в словарь d1 = {"Russia":"Moscow", "USA":"Washington"} d1["China"]="Beijing" print(d1) {'Russia': 'Moscow', 'China': 'Beijing', 'USA': 'Washington'} Для удаления элемента из словаря можно воспользоваться командой del. d2 = {"A1":"123", "A2":"456"} del d2["A1"] print(d2) {'A2': '456'} Проверка наличия ключа в словаре производится с помощью оператора in. d2 = {"A1":"123", "A2":"456"} "A1" in d2 True "A3" in d2 False Методы словарей clear() Удаляет все элементы словаря. d2 = {"A1":"123", "A2":"456"} print(d2) {'A2': '456', 'A1': '123'} d2.clear() print(d2) {} copy() Создается новая копия словаря. d2 = {"A1":"123", "A2":"456"} d3 = d2.copy() print(d3) {'A1': '123', 'A2': '456'} d3["A1"]="789” print(d2) {'A2': '456', 'A1': '123‘} print(d3) {'A1': '789', 'A2': '456'} get(key) Возвращает значение из словаря по ключу key. d = {"A1":"123", "A2":"456«} d.get("A1") '123' items() Возвращает элементы словаря (ключ, значение) в отформатированном виде. d = {"A1":"123", "A2":"456"} d.items() dict_items([('A2', '456'), ('A1', '123')]) Объединение словарей В том случае, если возникла необходимость в перемещении данных из одного словаря в другой, стоит воспользоваться функцией объединения update. Вызвать ее нужно на объекте, который предполагается расширить новыми парами ключей и значений. Вот пример как в Python добавить в словарь словарь: a = {1: "one", 2: "two", 3: "three"} b = {4: "four", 5: "five"} a.update(b) print(a) {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'} Получение размера a = {1: "one", 2: "two", 3: "three"} print(len(a)) 3 Генератор словарей Как и с другими наборами данных, производить заполнение словарей можно при помощи генераторов. В следующем примере демонстрируется создание числовых пар коллекции с использованием генератора словарей Python с методом range, получающего в качестве аргумента 5. a = {a: a * a for a in range(5)} print(a) {0: 0, 1: 1, 2: 4, 3: 9, 4: 16} Таким образом, на выходе получается словарь a, включающий в себя ровно 5 пар. Ключами являются числа от 0 до 4, а значениями выступают их математические квадраты. Сортировка Сортировка осуществляется за счет импортированного модуля operator и встроенного метода itemgetter, получающего 0 или 1. import operator a = {2 : "two", 3 : "three", 1 : "one"} b = sorted(a.items(), key = operator.itemgetter(0)) print(b) b = sorted(a.items(), key = operator.itemgetter(1)) print(b) [(1, 'one'), (2, 'two'), (3, 'three')] [(1, 'one'), (3, 'three'), (2, 'two')] Аргумент 0 позволяет отсортировать словарь по ключу, в то время как 1 дает возможность вывести его содержимое в алфавитном порядке значений. Сравнение Иногда нужно удостовериться, что два словаря содержат абсолютно одинаковые данные, либо узнать какая коллекция больше или меньше по размеру. В этом случае на помощь приходит метод cmp, получающий в качестве параметров два словаря. a = {1: "one", 2: "two", 3: "three"} b = {4: "four", 5: "five"} c = {1: "one", 2: "two", 3: "three"} print(cmp(a, b)) print(cmp(b, c)) print(cmp(a, c)) 1 -1 0 Приведенный код продемонстрировал выполнение метода cmp с трема комбинациями аргументов. Как видно из результатов выдачи, функция возвращает 1, если первый больше второго, -1, если наоборот и 0, когда данные полностью идентичны. С помощью функции-упаковщика zip(), вызванной внутри dict(), вы можете составить словарь из двух списков (в случае несовпадения длин списков, функция самостоятельно отсечет лишние элементы): Спасибо за внимание |