- День 8
- Словари
- Создание словаря
- Длина словаря
- Доступ к элементам словаря
- Добавление элементов в словарь
- Изменение элементов в словаре
- Проверка ключей в словаре
- Удаление пары ключ-значение из словаря
- Преобразование словаря в список элементов
- Очистка словаря
- Удаление словаря
- Копирование словаря
- Получение ключей словаря в виде списка
- Получение значений словаря в виде списка
- Упражнения: День 8
- Словари
Словарь - это коллекция неупорядоченных, изменяемых (mutable) пар (ключ: значение) типов данных.
Для создания словаря в Python мы используем фигурные скобки {} или встроенную функцию dict().
# синтаксис
empty_dict = {}
# создание словаря со значениями
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
Вышеуказанный словарь показывает, что значение в словаре может быть любым типом данных: строкой, булевым значением, списком, кортежем, множеством или другим словарем.
Функция len() возвращает количество пар "ключ: значение" в словаре.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
print(len(dct)) # 4
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
print(len(person)) # 7
Мы можем получить доступ к элементам словаря, обратившись к ним по имени ключа.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
print(dct['key1']) # value1
print(dct['key4']) # value4
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
print(person['first_name']) # Asabeneh
print(person['country']) # Finland
print(person['skills']) # ['JavaScript', 'React', 'Node', 'MongoDB', 'Python']
print(person['skills'][0]) # JavaScript
print(person['address']['street']) # Space street
print(person['city']) # Error
Доступ к элементу по имени ключа вызовет ошибку, если ключа не существует. Чтобы избежать этой ошибки, мы должны сначала проверить, существует ли ключ, или мы можем использовать метод get(). Метод get() возвращает None (является объектом типа NoneType), если ключа не существует.
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
print(person.get('first_name')) # Asabeneh
print(person.get('country')) # Finland
print(person.get('skills')) #['HTML','CSS','JavaScript', 'React', 'Node', 'MongoDB', 'Python']
print(person.get('city')) # None
Мы можем добавлять новые пары "ключ: значение" в словарь.
# sсинтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
dct['key5'] = 'value5'
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
person['job_title'] = 'Instructor'
person['skills'].append('HTML')
print(person)
Мы можем изменять элементы в словаре.
# syntax
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
dct['key1'] = 'value-one'
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
person['first_name'] = 'Eyob'
person['age'] = 252
Используем оператор in для проверки существования ключа в словаре.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
print('key2' in dct) # True
print('key5' in dct) # False
- pop(key): удаляет элемент с указанным именем ключа:
- popitem(): удаляет последний элемент
- del: удаляет элемент с указанным именем ключа
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
dct.pop('key1') # удаляет элемент с ключом 'key1'
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
dct.popitem() # удаляет последний элемент
del dct['key2'] # удаляет элемент с ключом 'key2'
Например:
person = {
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'age':250,
'country':'Finland',
'is_marred':True,
'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address':{
'street':'Space street',
'zipcode':'02210'
}
}
person.pop('first_name') # Удаляет элемент с именем "firstname"
person.popitem() # Удаляет элемент с именем "address"
del person['is_married'] # Удаляет элемент с именем "is_married"
Метод items() преобразует словарь в список кортежей.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
print(dct.items()) # dict_items([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3'), ('key4', 'value4')])
Если мы не хотим оставлять элементы в словаре, мы можем очистить его, используя метод clear().
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
print(dct.clear()) # None
Если мы больше не используем словарь, мы можем полностью удалить его с помощью оператора del.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
del dct
Мы можем скопировать словарь с помощью метода copy(). Используя копию, мы можем избежать изменения исходного словаря.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
dct_copy = dct.copy() # {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
Метод keys() позволяет получить все ключи словаря в виде списка.
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
keys = dct.keys()
print(keys) # dict_keys(['key1', 'key2', 'key3', 'key4'])
Метод values() позволяет получить все значения словаря в виде списка
# синтаксис
dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
values = dct.values()
print(values) # dict_values(['value1', 'value2', 'value3', 'value4'])
🌕 Вы просто великолепны! Теперь вы обладаете непревзойденной мощью словарей. Вы только что успешно выполнили задания восьмого дня и находитесь на 8 шагов впереди, двигаясь по пути к великолепию. Теперь давайте сделаем несколько упражнений для вашего ума и мышц.
- Создайте пустой словарь с именем "dog".
- Добавьте в словарь "dog" ключи "name", "color", "breed", "legs" и "age".
- Создайте словарь "student" и добавьте ключи "first_name", "last_name", "gender", "age", "marital status", "skills", "country", "city" и "address".
- Получите длину словаря "student".
- Получите значение ключа "skills" и проверьте его тип данных, он должен быть списком.
- Измените значения ключа "skills", добавив одну или две навыка.
- Получите ключи словаря в виде списка.
- Получите значения словаря в виде списка.
- Преобразуйте словарь в список кортежей с помощью метода items().
- Удалите один из элементов из словаря.
- Удалите один из словарей полностью.
🎉 ПОЗДРАВЛЯЕМ ! 🎉