Python вложен речник (с примери)

В тази статия ще научите за вложен речник в Python. По-конкретно, ще се научите да създавате вложен речник, да осъществявате достъп до елементи, да ги модифицирате и така нататък с помощта на примери.

В Python речникът е неподредена колекция от елементи. Например:

 речник = ('ключ': 'стойност', 'ключ_2': 'стойност_2')

Тук речникът има key:valueдвойка, затворена в къдрави скоби ().

За да научите повече за речника, моля, посетете Python Dictionary.

Какво е вложен речник в Python?

В Python, вложен речник е речник в речника. Това е колекция от речници в един речник.

 nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))

Тук nested_dict е вложен речник с речника dictAи dictB. Те са два речника, всеки със собствен ключ и стойност.

Създайте вложен речник

Ще създадем речник на хора в речника.

Пример 1: Как да създадем вложен речник

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)

Когато стартираме над програмата, тя ще изведе:

 (1: („име“: „Джон“, „възраст“: „27“, „пол“: „Мъж“), 2: („име“: „Мари“, „възраст“: „22“, „пол ': 'Женски пол'))

В горната програма хората е вложен речник. Вътрешният речник 1и 2се възлага на хора. Тук, както речника има ключ name, age, sexс различни стойности. Сега отпечатваме резултата от хората.

Достъп до елементи на вложен речник

За достъп до елемент на вложен речник използваме ()синтаксис за индексиране в Python.

Пример 2: Достъп до елементите, използвайки синтаксиса ()

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people(1)('name')) print(people(1)('age')) print(people(1)('sex'))

Когато стартираме над програмата, тя ще изведе:

 Йоан 27 Мъж

В горната програма отпечатваме стойността на ключ, nameизползвайки т.е. people(1)('name')от вътрешния речник 1. По същия начин отпечатваме стойността на ageи sexедин по един.

Добавяне на елемент към вложен речник

Пример 3: Как да променяте или добавяте елементи в вложен речник?

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) people(3) = () people(3)('name') = 'Luna' people(3)('age') = '24' people(3)('sex') = 'Female' people(3)('married') = 'No' print(people(3))

Когато стартираме над програмата, тя ще изведе:

 („име“: „Луна“, „възраст“: „24“, „пол“: „Жена“, „женен“: „Не“)

В горната програма ние създаваме празен речник 3в речника хора.

След това добавяме key:valueдвойката, т.е. people(3)('Name') = 'Luna'в речника 3. По същия начин, ние правим това за ключов age, sexи marriedедин по един. Когато отпечатваме people(3), получаваме key:valueдвойки речник 3.

Пример 4: Добавете друг речник към вложения речник

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No')) people(4) = ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes') print(people(4))

Когато стартираме над програмата, тя ще изведе:

 („име“: „Петър“, „възраст“: „29“, „пол“: „Мъж“, „женен“: „Да“)

В горната програма ние присвояваме речник литерал на people(4). Буквалното имат ключове name, ageи sexсъс съответните стойности. След това отпечатваме people(4), за да видим, че речникът 4е добавен в вложени хора в речника.

Изтрийте елементи от вложен речник

В Python използваме оператора „del“, за да изтрием елементи от вложен речник.

Пример 5: Как да изтрия елементи от вложен речник?

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes')) del people(3)('married') del people(4)('married') print(people(3)) print(people(4))

Когато стартираме над програмата, тя ще изведе:

 ('name': 'Luna', 'age': '24', 'sex': 'Female') ('name': 'Peter', 'age': '29', 'sex': 'Male')

В горната програма изтриваме key:valueдвойките от marriedот вътрешния речник 3и 4. След това отпечатваме people(3)и, за people(4)да потвърдим промените.

Пример 6: Как да изтрия речник от вложен речник?

 people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male')) del people(3), people(4) print(people)

Когато стартираме над програмата, тя ще изведе:

 (1: („име“: „Джон“, „възраст“: „27“, „пол“: „Мъж“), 2: („име“: „Мари“, „възраст“: „22“, „пол ': 'Женски пол'))

В горната програма изтриваме както вътрешния речник, така 3и 4използването delот вложените речници хора. След това отпечатваме вложените речници, за да потвърдим промените.

Итерация през вложен речник

Използвайки циклите for, можем да прегледаме всеки елемент в вложен речник.

Example 7: How to iterate through a Nested dictionary?

 people = (1: ('Name': 'John', 'Age': '27', 'Sex': 'Male'), 2: ('Name': 'Marie', 'Age': '22', 'Sex': 'Female')) for p_id, p_info in people.items(): print("Person ID:", p_id) for key in p_info: print(key + ':', p_info(key))

When we run above program, it will output:

 Person ID: 1 Name: John Age: 27 Sex: Male Person ID: 2 Name: Marie Age: 22 Sex: Female

In the above program, the first loop returns all the keys in the nested dictionary people. It consist of the IDs p_id of each person. We use these IDs to unpack the information p_info of each person.

The second loop goes through the information of each person. Then, it returns all of the keys name, age, sex of each person's dictionary.

Now, we print the key of the person’s information and the value for that key.

Key Points to Remember:

  1. Nested dictionary is an unordered collection of dictionary
  2. Slicing Nested Dictionary is not possible.
  3. We can shrink or grow nested dictionary as need.
  4. Like Dictionary, it also has key and value.
  5. Речникът е достъпен с помощта на ключ.

Интересни статии...