logo

Hent længden af ​​ordbogen i Python

For at beregne længden af ​​en ordbog kan vi bruge Python indbyggede len()-metoden. Metoden len() returnerer antallet af nøgler i en Python ordbog .

Python Dict len() Syntaks

Syntaks: len(dikt)



Vend tilbage: Det returnerer et heltal, som er længden af ​​strengen.

Name:Steve Age:30 Designation:Programmer>

Grundlæggende eksempel på at finde længden af ​​en ordbog

Python3








dict1>=>{>'Name'>:>'Steve'>,>'Age'>:>30>,>'Designation'>:>'Programmer'>}> print>(>'Dictionary:'>, dict1)> print>(>'Length of dictionary:'>,>len>(dict1))>

>

streng til tegn
>

Produktion:

Dictionary: {'Name': 'Steve', 'Age': 30, 'Designation': 'Programmer'} Length of dictionary: 3>

Find længden af ​​indlejret ordbog

Overvej følgende detaljer om en person:

Name:Steve Age:30 Designation:Programmer address: Street:Brigade Road City:Bangalore Country:India>

Problem ved forsøg på at finde længden af ​​indlejret ordbog:

Python3




# A nested dictionary> dict2>=> {># outer dictionary> >'Name'>:>'Steve'>,> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>: {># inner dictionary> >'Street'>:>'Brigade Road'>,> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> }> print>(>'len() method :'>,>len>(dict2))> print>(>'len() method with keys() :'>,>len>(dict2.keys()))> print>(>'len() method with values():'>,>len>(dict2.values()))>

c++ opdelt streng
>

>

Produktion:
len() metode med nøgler(): 4
len() metode med værdier(): 4

Her, uanset hvilken metode du anvender, får du kun '4' som output. Men det faktiske antal poster er '7'. Nøglerne er navn, alder, betegnelse, adresse, gade, by og land. Metoden betragter den ydre ordbog, som er en værdi for en af ​​nøglerne, som en enkelt værdi.

For at overvinde dette problem skal vi udtrykkeligt tilføje længden af ​​den indre ordbog til den ydre. Det kan kodes som angivet nedenfor:

Python3




# A nested dictionary> dict2>=>{> >'Name'>:>'Steve'>,> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>:> >{> >'Street'>:>'Brigade Road'>,> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> >}> # total length = length of outer dict +> # length of inner dict> length>=> len>(dict2)>+>len>(dict2[>'address'>])> print>(>'The length of the nested dictionary is:'>, length)>

>

>

Produktion:

The length of the nested dictionary is: 7>

Nu virker det fint!!! Men er det muligt eksplicit at programmere til at tilføje længden af ​​indre ordbøger hver gang? Hvad hvis vi ikke tidligere ved, hvor mange indre ordbøger der er? Overvej nu følgende detalje:

Name: first name:Steve last name:Jobs Age:30 Designation:Programmer address: Street:Brigade Road City:Bangalore Country:India>

Her har vi to indre ordbøger. Det er ikke en optimeret måde eksplicit at tilføje længden af ​​de indre ordbøger hver gang. Vi kan løse dette problem ved at kombinere isinstance() med len()-metoden. Ideen er først at gemme længden af ​​hele ordbogen i en variabel (sig 'længde' her) . Gentag derefter alle ordbogens værdier() og kontroller, om det er en forekomst af dict. Hvis 'Rigtigt' så er længden af ​​den indre ordbog fundet og tilføjet til variablen længde . På denne måde kunne den samlede længde af en indlejret ordbog findes.

Eksempel 1: Find længden af ​​indlejret ordbog dynamisk ved hjælp af for-loop:

Når vi har flere nøgler i en ordbog, hvis værdier igen er ordbøger. Så skal vi kontrollere, om typen af ​​værdien af ​​hver nøgle, hvis det er en ordbog, så bruger vi len() på værdien og tilføjer værdien til længden af ​​den ydre ordbog.

hvad er prolog

Python3




# nested dictionary> dict2>=>{> >'Name'>:> >{> >'first_name'>:>'Steve'>,> >'Last_name'>:>'Jobs'> >},> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>:> >{> >'Street'>:>'Rockins Road'>,> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> >}> # storing the outer dictionary length> length>=> len>(dict2)> # iterating to find the length> # of all inner dictionaries> for> i>in> dict2.values():> ># checking whether the value is a dictionary> >if> isinstance>(i,>dict>):> >length>+>=> len>(i)> > print>(>'The length of the dictionary is'>, length)>

>

>

Produktion:

The length of the dictionary is 9>

Bemærk: Denne tilgang vil kun fungere, når ordbøgernes indlejring kun er op til 2 niveauer.

Hvis ordbogen er yderligere dybt indlejret som nedenfor:

Name: first name:Steve last name:Jobs Age:30 Designation:Programmer address: Street: St_number:4 St_name:Brigade Road City:Bangalore Country:India>

Eksempel 2: Brug af rekursion til at finde længden af ​​indlejret ordbog:

Her har vi brugt en rekursiv funktion count_nested_len() til at tælle længden af ​​hver ordbog, vi itererer på nøglerne til ordbøger, så snart en værdi er en ordbog, forlader vi den ordbog.

Python3




# nested dictionary> dict2>=>{> >'Name'>:> >{> >'first_name'>:>'Steve'>,> >'Last_name'>:>'Jobs'> >},> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>:> >{> >'Street'>:> >{> >'st_number'>:>4>,> >'st_name'>:>'Rockins Road'> >},> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> >}> # we use recursive function to count> # length of nested dictionaries> def> count_nested_len(d):> >length>=> len>(d)> >for> key, value>in> d.items():> >if> isinstance>(value,>dict>):> >length>+>=> count_nested_len(value)> >return> length> print>(>'Nested dictionary length:'>,> >count_nested_len(dict2))>

salman khan alder
>

>

Produktion:

Nested dictionary length: 11>

Fremgangsmåde 3: Brug af ordbogsforståelse

Python3

# indlejret ordbog
dikt2 ={
'Navn':
{
'first_name': 'Steve',
'Last_name': 'Jobs'
},
'Alder': 30,
'Betegnelse': 'Programmer',
'adresse':
{
'Gade':
{
'st_number':4,
'st_name': 'Rockins Road'
},
'By': 'Bangalore',
'Land': 'Indien'
}
}

# Brug af ordbogsforståelse til at finde længden af ​​den indlejrede ordbog
længde = len({k: v for k, v i dict2.items()})

print (Længden af ​​ordbogen er, længde)
#Denne kode er bidraget af Edula Vinay Kumar Reddy

METODE 4:Brug af et generatorudtryk med sum() funktion.

NÆRME SIG:

jdbc jdbc

Et generatorudtryk bruges til at skabe en sekvens af 1'ere, hvor hver 1 svarer til en nøgle i ordbogen. Sum()-funktionen bruges derefter til at lægge 1'erne sammen, hvilket giver længden af ​​ordbogen.

ALGORITME:

1.Opret et generatorudtryk, der genererer en sekvens af 1'ere for hver nøgle i ordbogen.
2.Brug sum()-funktionen til at lægge 1'erne sammen i sekvensen.
3. Returner summen, som repræsenterer længden af ​​ordbogen.

Python3




dict1>=> {>'Name'>:>'Steve'>,>'Age'>:>30>,>'Designation'>:>'Programmer'>}> length>=> sum>(>1> for> key>in> dict1)> print>(length)>

>

>

Produktion

3>

Tidskompleksiteten af ​​denne tilgang er O(n), hvor n er antallet af nøgler i ordbogen.

Rumkompleksiteten af ​​denne tilgang er O(1)