Словарь
Словарь представляет собой контейнер, содержащий пары ключ-значение. Каждому ключу соответствует единственное значение. Но для некоторых ключей значения могут совпадать.
В качестве примера может выступать обычный толковый словарь. Так для толкового словаря слово является ключем, а его определение - значением. Для каждого слова может быть только одно определение, но, в теории, может быть несколько слов, являющихся синонимами, и определения для двух разных слов будут совпадать.
Ключ и значение вовсе необязательно должны быть строковыми значениями. Так, например, мы можем сопоставить имени человека его рост. Задать такого рода словарь в 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():Метод values позволяет перебрать отдельно значения словаря. Напишем программу для подсчета количества людей, которые выше 170.
if(value>170):
print(key,value)
c=0 for value in d.values():
if(value>170):
c+=1 print(c)