Автор оригинала: Team Python Pool.
Вложенный словарь в Python: Простое хранение данных
Всякий раз, когда мы говорим о хранении данных в виде пары ключ-значение в python, структура данных, которая приходит на ум в первую очередь, – это словарь python. Если вы пришли из JAVA-фона, вы должны быть знакомы с hashmap и хэш-таблицами. Если мы хотим хранить информацию структурированным образом, создание вложенного словаря в python может быть одним из лучших вариантов.Вложенный словарь-это не что иное, как словарь внутри словаря. Во вложенных словарях некоторые ключи имеют другой словарь в качестве своих значений. Давайте рассмотрим пример, чтобы понять это better.{“Sameer”:{“English”:91},”Tarun”:{“English”:76},”Archit”:{“English”:92}}Мы видим, что, используя вложенный словарь, мы можем хранить информацию для разных студентов и их оценок. И самое лучшее, что его так легко достать. Это было бы невозможно с помощью списков или любого другого типа данных.
Как создать вложенные словари в Python
Создание вложенного словаря в python – это не ракетостроение. Для начала давайте сначала узнаем, как создать стандартный словарь.
Стандартный словарь
# To create a normal dictionary we can use dict().() #, #, print("dict1:",dict1) # Using {} dict2={} print("dict2:",dict2)
Output- dict1: {'a': 20, 'b': 21} dict2: {'c': 50, 'd': 51}
Вложенный словарь
Метод-1
# making an empty dictionary student_info={} # Adding value to as another dictonary student_info['ashwini'] ={'maths':92,'english':90,'science':80} student_info['archit'] ={'maths':93,'english':80,'science':90} student_info['tarun'] ={'maths':82,'english':86,'science':95} print(student_info)
Output- {'ashwini': {'maths': 92, 'english': 90, 'science': 80}, 'archit': {'maths': 93, 'english': 80, 'science': 90}, 'tarun': {'maths': 82, 'english': 86, 'science': 95}}
Способ 2 Использование zip()
# Storing the id's into a list Employee_id=[1,2,3] # Storing the info in another dictionary Employee_info = [ { 'Name': 'Ashish' , 'Age' : 33 , "Designation" : "Web Developer"} , { 'Name' : 'Shubham' , 'Age' : 23 , "Designation" : "IOS APP Developer" } , { 'Name' : 'Vandana' , 'Age' : 25, "Designation" : "Data Scientist" }] # Mapping the id's with employee information(zip(Employee_id,Employee_info)) print('Employee Information',Employee)
Output- Employee Information {1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Web Developer'}, 2: {'Name': 'Shubham', 'Age': 23, 'Designation': 'IOS APP Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}}
Добавление новых элементов во Вложенный словарь в Python
Предположим, мы хотим добавить новые элементы в уже созданный словарь. Давайте посмотрим, как мы это сделаем.
Метод-1
Employee_id=[1,2,3,4,5] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) #Here we are adding new info of Employee with 'id':4 Employee[4]={'Name':'Ashutosh','Age':40,"Designation":"Cyber Security Expert"} print(Employee[4])
Output- {'Name': 'Ashutosh', 'Age': 40, 'Designation': 'Cyber Security Expert'}
Способ-2
Employee_id=[1,2,3] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) # Create a new dictionary for Employee with id-4 Employee[4]={} # Adding NAME of Employee # Adding AGE of Employee # Adding DESIGNATION of Employee print(Employee)
Выход-
{1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Web Developer'}, 2: {'Name': 'Shubham', 'Age': 23, 'Designation': 'IOS APP Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}, 4: {'Name': 'Manya', 'Age': 29, 'Designation': 'HR'}}
Вы можете заметить, что новые записи были успешно добавлены в конце.
Способ 3-
Предположим, что мы хотим добавить несколько записей в словарь. Для этого мы можем использовать цикл For.
Employee_id=[1,2,3] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) # Checking the length of the dictionary before addition(Employee)(input("How many Entries you want to add:")) # Adding new Employees for i in range(total_employees+1,total_employees+ids+1): Employee[i]={} # Adding NAME of Employee ("Enter the name of new Employee:") # Adding AGE of Employee (input("Enter the age of new Employee:")) # Adding DESIGNATION of Employee ("Enter the designation of new Employee:") print(Employee)
Output- How many Entries you want to add:4 Enter the name of new Employee:kunal Enter the age of new Employee:29 Enter the designation of new Employee:Data Analyst Enter the name of new Employee:Kushal Enter the age of new Employee:49 Enter the designation of new Employee:System Architect Enter the name of new Employee:Preeti Enter the age of new Employee:36 Enter the designation of new Employee:Researcher Enter the name of new Employee:Aarti Enter the age of new Employee:22 Enter the designation of new Employee: Content Writer {1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Web Developer'}, 2: {'Name': 'Shubham', 'Age': 23, 'Designation': 'IOS APP Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}, 4: {'Name': 'kunal', 'Age': 29, 'Designation': 'Data Analyst'}, 5: {'Name': 'Kushal', 'Age': 49, 'Designation': 'System Architect'}, 6: {'Name': 'Preeti', 'Age': 36, 'Designation': 'Researcher'}, 7: {'Name': 'Aarti', 'Age': 22, 'Designation': 'Content Writer'}}
Изменение значений во Вложенных словарях в Python
В этом разделе мы узнаем, как обновить значения во вложенном словаре. Например, предположим, что в компании сотрудник по имени Ашиш, который работал веб-разработчиком, был повышен до старшего веб-разработчика. Давайте посмотрим, как мы можем обновить это значение.
Employee_id=[1,2,3,4,5] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) print("Employee information before updation",Employee,"\n") # Iterating through the values in employee dictionary for i in Employee.values(): # Look for an employee with name 'Ashish' if: # Change the designation to 'Sr. Web Developer' print("Employee information after updation",Employee)
Выход-
Employee information before updation {1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Web Developer'}, 2: {'Name': 'Shubham', 'Age': 23, 'Designation': 'IOS APP Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}} Employee information after updation {1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Sr. Web Developer'}, 2: {'Name': 'Shubham', 'Age': 23, 'Designation': 'IOS APP Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}}
Удаление записи во Вложенном словаре в Python
Предположим, что сотрудник покинул компанию. Давайте посмотрим, как мы отбросим эту запись.
Employee_id=[1,2,3,4,5] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) print("Employee before Deletion : ",Employee,"\n") # Delete the employee record with Employee.pop(2) print("Employee after Deletion : ",Employee)
Выход-
Employee before Deletion : {1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Web Developer'}, 2: {'Name': 'Shubham', 'Age': 23, 'Designation': 'IOS APP Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}} Employee after Deletion: {1: {'Name': 'Ashish', 'Age': 33, 'Designation': 'Web Developer'}, 3: {'Name': 'Vandana', 'Age': 25, 'Designation': 'Data Scientist'}}
Извлечение значений из вложенных словарей в Python
Извлечение значений из вложенных словарей в Python
Employee_id=[1,2,3] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) # Iterating through employee keys for i in Employee.keys(): print("Employee Id:",i) # Iterating through the values of Employee keys for j in Employee[i]: print(j,":",Employee[i][j]) print("\n")
Выход-
Employee Id: 1 Name : Ashish Age : 33 Designation: Web Developer Employee Id: 2 Name: Shubham Age: 23 Designation: IOS APP Developer Employee Id: 3 Name : Vandana Age : 25 Designation : Data Scientist
Теперь, если мы хотим напрямую получить доступ к возрасту сотрудника с помощью
Employee_id=[1,2,3] Employee_info=[{'Name':'Ashish','Age':33,"Designation":"Web Developer"},{'Name':'Shubham','Age':23,"Designation":"IOS APP Developer"},{'Name':'Vandana','Age':25,"Designation":"Data Scientist"}](zip(Employee_id,Employee_info)) # Age of employee with id 2 print(Employee[2]['Age'])
Выход-
23
Надо Читать
- Как преобразовать строку в нижний регистр в
- Как вычислить Квадратный корень
- Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
- Лучшая книга для изучения Python
Вывод
Вложенные словари в python оказались очень полезными, когда мы должны хранить данные структурированным образом. Мы обсудили, как хранить данные во вложенном словаре, как извлекать из него значения, как удалять и обновлять значения из него различными способами.
Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.
Счастливого кодирования!