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:value
par 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 dictA
och 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 1
och 2
tilldelas människor. Här både ordlistan har nyckeln name
, age
, sex
med 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 name
hjälp av dvs people(1)('name')
från intern ordlista 1
. På samma sätt skriver vi ut värdet på age
och sex
en 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 3
inuti ordboken.
Sedan lägger vi till key:value
paret, dvs. people(3)('Name') = 'Luna'
i ordboken 3
. På samma sätt som vi gör detta för nyckeln age
, sex
och married
en efter en. När vi skriver ut people(3)
får vi key:value
par 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
, age
och sex
med respektive värden. Sedan skriver vi ut people(4)
, för att se att ordboken 4
lä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:value
paren married
från intern ordbok 3
och 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 3
och 4
använder del
frå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:
- Nested dictionary is an unordered collection of dictionary
- Slicing Nested Dictionary is not possible.
- We can shrink or grow nested dictionary as need.
- Like Dictionary, it also has key and value.
- Ordbok nås med hjälp av tangenten.