Рубрики
Без рубрики

Вложенный словарь в Python: Простое хранение данных

Для хранения информации в структурированном виде мы можем использовать вложенный словарь в python. Он также известен как словарь внутри словаря.

Автор оригинала: 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)
вложенный словарь python
вложенный словарь python
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 оказались очень полезными, когда мы должны хранить данные структурированным образом. Мы обсудили, как хранить данные во вложенном словаре, как извлекать из него значения, как удалять и обновлять значения из него различными способами.

Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.

Счастливого кодирования!