Python Nested Dictionary (med exempel)

I den här artikeln lär du dig om kapslad ordbok i Python. Mer specifikt lär du dig att skapa kapslad ordbok, komma åt element, ändra dem och så vidare med hjälp av exempel.

I Python är en ordbok en oordnad samling objekt. Till exempel:

 dictionary = ('key': 'value', 'key_2': 'value_2')

Här har ordlistan ett key:valuepar inneslutet inom lockiga parenteser ().

För att lära dig mer om ordlistan, besök Python Dictionary.

Vad är Nested Dictionary i Python?

I Python är en kapslad ordbok en ordlista i en ordbok. Det är en samling ordböcker i en enda ordlista.

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

Här är nested_dict en kapslad ordbok med ordlistan dictAoch dictB. De är två ordlistor som alla har egen nyckel och värde.

Skapa en kapslad ordbok

Vi ska skapa ordlista för människor i en ordbok.

Exempel 1: Hur man skapar en kapslad ordbok

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

När vi kör över programmet kommer det att matas ut:

 (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ': 'Kvinna'))

I programmet ovan är människor en kapslad ordbok. Den interna ordboken 1och 2tilldelas människor. Här både ordlistan har nyckeln name, age, sexmed olika värden. Nu skriver vi ut resultatet av människor.

Åtkomst till element i en kapslad ordbok

För att komma åt element i en kapslad ordbok använder vi indexeringssyntax ()i Python.

Exempel 2: Åtkomst till elementen med syntaxen ()

 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'))

När vi kör över programmet kommer det att matas ut:

 Johannes 27 hane

I ovanstående program skriver vi ut nyckelvärdet med namehjälp av dvs people(1)('name')från intern ordlista 1. På samma sätt skriver vi ut värdet på ageoch sexen efter en.

Lägg till element i en kapslad ordbok

Exempel 3: Hur ändrar eller lägger jag till element i en kapslad ordbok?

 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))

När vi kör över programmet kommer det att matas ut:

 ('name': 'Luna', 'age': '24', 'sex': 'Female', 'gift': 'No')

I programmet ovan skapar vi en tom ordlista 3inuti ordboken.

Sedan lägger vi till key:valueparet, dvs. people(3)('Name') = 'Luna'i ordboken 3. På samma sätt som vi gör detta för nyckeln age, sexoch marrieden efter en. När vi skriver ut people(3)får vi key:valuepar ordlista 3.

Exempel 4: Lägg till en annan ordlista i den kapslade ordboken

 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))

När vi kör över programmet kommer det att matas ut:

 ('name': 'Peter', 'age': '29', 'sex': 'Male', 'gift': 'Yes')

I ovanstående program tilldelar vi en ordbok ordbok till people(4). Den bokstav har nycklar name, ageoch sexmed respektive värden. Sedan skriver vi ut people(4), för att se att ordboken 4läggs till i kapslade ordbokspersoner.

Ta bort element från en kapslad ordbok

I Python använder vi uttalandet "del" för att ta bort element från kapslad ordbok.

Exempel 5: Hur tar jag bort element från en kapslad ordbok?

 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))

När vi kör över programmet kommer det att matas ut:

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

I programmet ovan tar vi bort key:valueparen marriedfrån intern ordbok 3och 4. Sedan skriver vi ut people(3)och people(4)bekräftar ändringarna.

Exempel 6: Hur tar jag bort ordlista från en kapslad ordbok?

 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)

När vi kör över programmet kommer det att matas ut:

 (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex ': 'Kvinna'))

I ovanstående program tar vi bort både den interna ordboken 3och 4använder delfrån de kapslade ordboken. Sedan skriver vi ut de kapslade ordboken för att bekräfta ändringarna.

Iterera genom en kapslad ordbok

Med hjälp av for-looparna kan vi itera igenom varje element i en kapslad ordbok.

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. Ordbok nås med hjälp av tangenten.

Intressanta artiklar...