Словарь

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

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

Ключ и значение вовсе необязательно должны быть строковыми значениями. Так, например, мы можем сопоставить имени человека его рост. Задать такого рода словарь в python мы можем следующим образом.

d={"Петя": 176, "Вася": 180, "Маша": 168}

Перезаписать рост человека по ключу можно с помощью привычного нам присваивания.

d["Маша"]=177
print(d) #{"Петя": 176, "Вася": 180, "Маша": 177}

Если же аналогичные действия проделать с ключом, которого еще нет в словаре, то мы просто добавим новое значение в словарь.

d["Катя"]=165
print(d) #{"Петя": 176, "Вася": 180, "Маша": 177, "Катя": 165}

Помимо стандартного обращения к элементу через квадратные скобки, существует метод get. Данный метод принимает ключ и возвращает значение для принятого ключа. Если такого ключа в словаре нет возвращает None.

print(d.get("Петя")) #176
print(d.get("Лена")) #None

Также существует способ передать два параметра в get для того, чтобы при отсутствии ключа возвращалась второе значение.

print(d.get("Петя", 170)) #176
print(d.get("Лена", 170)) #170

Для удаления элементов можно использовать оператор del. 

del d["Катя"]
print(d) #{"Петя": 176, "Вася": 180, "Маша": 177}

Но нужно учитывать, что если попытаться удалить несуществующий элемент мы получим ошибку. 

Также удалять элемент из словаря можно с помощью метода pop. Данный метод удаляет элемент словаря и возвращает его значение.

x=d.pop("Петя")
print(x) #176
print(d) #{"Вася": 180, "Маша": 177}

Если попытаться удалить отсутствующий элемент, то опять же будет ошибка. Существует возможность передать в метод pop второй параметр, тогда ошибки не будет, а будет возвращен этот самый второй параметр.

x=d.pop("Лена", "Такого человека нет")
print(x) #Такого человека нет

Ну и также мы можем проверять наличие элемента с определенным ключем в словаре с помощью in.

if "Вася" in d #True
if "Лена" in d #False

С помощью метода update можем объединить два словаря.

d={"Петя": 176, "Вася": 180, "Маша": 168}
k={"Лена": 190, "Катя": 165}
d.update(k)
print(d) #{'Петя': 176, 'Вася': 180, 'Маша': 168, 'Лена': 190, 'Катя': 165}

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

for key in d:
    if(d[key]>170):
        print(key,d[key])

С помощью метода items можем перебрать сразу и ключи, и значения, и работать с двумя переменными при переборе.

for key, value in d.items():
    if(value>170):
        print(key,value)
Метод values позволяет перебрать отдельно значения словаря. Напишем программу для подсчета количества людей, которые выше 170.

c=0
for value in d.values():
    if(value>170):
        c+=1 print(c)


Последнее изменение: Четверг, 10 октября 2024, 21:11