Python Nested Dictionary (med eksempler)

I denne artikkelen vil du lære om nestet ordbok i Python. Mer spesifikt lærer du å lage nestet ordbok, få tilgang til elementer, endre dem og så videre ved hjelp av eksempler.

I Python er en ordbok en uordnet samling av gjenstander. For eksempel:

 ordbok = ('nøkkel': 'verdi', 'nøkkel_2': 'verdi_2')

Her har ordboken et key:valuepar lukket i krøllete parenteser ().

For å lære mer om ordbok, besøk Python Dictionary.

Hva er Nested Dictionary i Python?

I Python er en nestet ordbok en ordbok i en ordbok. Det er en samling ordbøker i en enkelt ordbok.

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

Her er nested_dict en nestet ordbok med ordboken dictAog dictB. De er to ordbøker som hver har egen nøkkel og verdi.

Lag en nestet ordbok

Vi skal lage ordbok for mennesker i en ordbok.

Eksempel 1: Hvordan lage en nestet ordbok

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

Når vi kjører over programmet, vil det sende ut:

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

I programmet ovenfor er folk en nestet ordbok. Den interne ordboken 1og 2er tilordnet folk. Her, både i ordlisten har nøkkelen name, age, sexmed forskjellige verdier. Nå skriver vi ut resultatet av mennesker.

Få tilgang til elementer i en nestet ordbok

For å få tilgang til element i en nestet ordbok, bruker vi indekseringssyntaks ()i Python.

Eksempel 2: Få tilgang til elementene ved hjelp av () syntaksen

 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 kjører over programmet, vil det sende ut:

 Johannes 27 Mann

I det ovennevnte programmet skriver vi ut verdien av nøkkelen nameved hjelp av dvs. people(1)('name')fra intern ordbok 1. På samme måte skriver vi ut verdien av ageog sexen etter en.

Legg til element i en nestet ordbok

Eksempel 3: Hvordan endre eller legge til elementer i en nestet 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 kjører over programmet, vil det sende ut:

 ('navn': 'Luna', 'alder': '24', 'kjønn': 'Kvinne', 'gift': 'Nei')

I programmet ovenfor skaper vi en tom ordbok 3inne i ordboken.

Deretter legger vi til key:valueparet, dvs. people(3)('Name') = 'Luna'inne i ordboken 3. På samme måte gjør vi dette for nøkkel age, sexog marrieden etter en. Når vi skriver ut people(3), får vi key:valuepar ordbok 3.

Eksempel 4: Legg til en annen ordbok i den nestede 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 kjører over programmet, vil det sende ut:

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

I programmet ovenfor tilordner vi en ordbok bokstavelig til people(4). Bokstavene har nøkler name, ageog sexmed respektive verdier. Deretter skriver vi ut people(4), for å se at ordboken 4er lagt til i nestede ordbokfolk.

Slett elementer fra en nestet ordbok

I Python bruker vi “del” -uttrykk for å slette elementer fra nestet ordbok.

Eksempel 5: Hvordan sletter du elementer fra en nestet 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 kjører over programmet, vil det sende ut:

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

I programmet ovenfor sletter vi key:valueparene marriedfra intern ordbok 3og 4. Deretter skriver vi ut people(3)og for people(4)å bekrefte endringene.

Eksempel 6: Hvordan slette ordbok fra en nestet 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 kjører over programmet, vil det sende ut:

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

I programmet ovenfor sletter vi både den interne ordboken 3og 4bruker delfra de nestede ordboken. Deretter skriver vi ut de nestede ordboken for å bekrefte endringene.

Iterere gjennom en nestet ordbok

Ved hjelp av for loops kan vi gjenta gjennom hvert element i en nestet 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 er tilgjengelig med tasten.

Interessante artikler...