Главная страница

книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница32 из 69
1   ...   28   29   30   31   32   33   34   35   ...   69

6.2. удаление пары ключ-значение


Пару ключ-значение из словаря можно удалить при помощи знакомого уже нам метода pop. В качестве аргумента этому методу должен быть передан ключ элемента, который требуется удалить. При выполнении метод удалит из списка как ключ, так и ассоциированное с ним значение. В отличие от списка, извлечь последнюю пару ключ-значение из словаря при помощи вызова метода pop без аргументов невозможно.

Метод pop возвращает значение, ассоциированное с ключом удаленной пары из словаря. Это значение может быть сохранено в переменной посредством оператора присваивания или использовано в других целях – например, в арифметическом выражении или для передачи в качестве аргумента в другую функцию либо метод.

6.3. дополнительные операции со словарями


После заполнения словаря парами ключ-значение может понадобиться выполнить различные действия с данными. Например, вам может потребоваться информация о том, сколько всего пар ключ-значение находится в словаре и присутствует ли в нем пара с конкретным ключом или значением. В Python реализовано сразу несколько функций, методов и операторов, позволяющих извлекать нужные сведения о словарях.

К примеру, функция len, которой мы пользовались для определения размера списка, вполне применима и к словарям – она выдает текущее количество пар ключ-значение, присутствующих в словаре. В качестве единственного параметра функции следует передать переменную, представляющую словарь, и на выходе мы получим количество пар ключзначение в указанном словаре. Если словарь на данный момент является пустым, функция вернет ноль.

Также знакомый нам оператор in может быть использован для определения того, входит ли в словарь интересующий нас ключ или значение. Для поиска ключа в словаре достаточно написать условное выражение, поместив ключ слева от оператора in, а имя словаря – справа. Оператор вернет True при наличии искомого ключа в словаре и False в обратном случае. Результат оператора in может быть использован везде, где допустимо применять булевы значения, например в условных блоках инструкций if или while.

Для определения наличия в словаре нужного вам значения необходимо использовать оператор in совместно с методом values. В этом случае искомое значение помещается слева от оператора in, а имя словаря с примененным к нему методом values – справа. В следующем фрагменте кода мы определим, присутствует ли в списке значений словаря d значение, находящееся в переменной x.

if x in d.values():

print("В словаре d есть как минимум одно значение", x) else: print("В словаре d не присутствует значение", x)

6.4. циклы и словари


Цикл for может быть использован для осуществления итераций по ключам словаря, как показано ниже. На каждой итерации ключ словаря сохраняется во внутренней переменной цикла k.

# Создаем словарь constants = {"pi": 3.14, "e": 2.71, "root 2": 1.41}

# Выводим на экран все ключи и значения в отформатированном виде for k in constants: print("Значение, ассоциированное с ключом", k, ": ", constants[k])

Сначала создается словарь с именем constants, в котором хранятся некоторые математические константы в виде пар ключ-значение. Цикл for открывает итерации по словарю. На первой итерации ключ pi сохраняется во временную переменную цикла k, и выполняется тело цикла с выводом на экран первой пары ключ-значение из списка. После этого цикл запускается вновь, и в переменную k уже попадает ключ e. В теле цикла на экран выводится соответствующая строка со значением 2,71. На заключительном проходе по словарю мы узнаем, что квадратный корень из двух равен 1,41.

Циклом for также можно воспользоваться для осуществления итераций по значениям словаря. Это легко реализовать при помощи метода values, не принимающего аргументов и создающего коллекцию значений словаря, к которому он применен. В следующем фрагменте кода мы рассчитаем сумму всех сохраненных в нашем словаре математических констант. Выражение constants.values() вернет коллекцию, состоящую из значений 3,14, 2,71 и 1,41. Каждое из этих значений во время итераций сохраняется во временной переменной цикла v, что позволяет рассчитать их сумму вовсе без обращения к ключам.

# Создаем словарь constants = {"pi": 3.14, "e": 2.71, "root 2": 1.41}

# Рассчитаем сумму значений в словаре total = 0 for v in constants.values(): total = total + v

# Выводим результат

print("Сумма значений составляет", total)

Иногда бывает удобнее обращаться к словарям при помощи циклов while, а не for. В следующем фрагменте кода пользователь должен ввести пять уникальных значений с клавиатуры, после чего на экране будут показаны все введенные данные со значением счетчика, который увеличивается на единицу всякий раз, когда пользователь вводит строку, уже присутствующую в словаре.

# Считаем, сколько раз пользователь ввел каждое значение counts = {}

# Цикл, пока количество уникальных значений в словаре не достигнет пяти while len(counts) < 5: s = input("Введите строку: ")

# Если в словаре уже есть такой ключ, увеличиваем count на 1. # Иначе добавляем пару к словарю со значением count, равным 1.

if s in counts:

counts[s] = counts[s] + 1 else: counts[s] = 1

# Выводим все строки и счетчики for k in counts:

print(k, "появилась в словаре", counts[k], "раз")

Программа начинается с создания пустого словаря. После этого запускается цикл while с проверкой на количество пар ключ-значение в словаре. Поскольку словарь пока пуст, условное выражение вернет True, и будет запущено тело цикла.

На каждой итерации пользователь будет вводить строку с клавиатуры. После этого при помощи оператора in будет определено, присутствует ли введенный пользователем ключ в списке. Если да, то ассоциированный с этим ключом счетчик (значение) будет увеличен на единицу. В противном случае словарь пополнится новой парой ключ-значение. Цикл будет продолжаться, пока пользователь не введет пять уникальных строк с клавиатуры. После этого на экран будут выведены все пары ключ-значение из списка.
6.5. словари как аргументы и возвращаемые значения функций
Словари могут быть переданы в функцию подобно значениям других типов. Как и в случае со списками, изменение переменной параметра, хранящей переданный словарь, может привести к модификации источника. Например, удаление, изменение или добавление пары ключ-значение неизбежно приведет к соответствующему изменению аргумента. В то же время присвоение переменной параметра другого значения (когда слева от знака равенства указывается только переменная без квадратных скобок) аргумента не затронет. Как и в случае с переменными других типов, функция может возвращать словарь при помощи ключевого слова return.
1   ...   28   29   30   31   32   33   34   35   ...   69


написать администратору сайта