logo

Obțineți lungimea dicționarului în Python

Pentru a calcula lungimea unui dicționar, putem folosi metoda len() încorporată din Python. Metoda len() returnează numărul de chei din a Dicționar Python .

Sintaxa Python Dict len().

Sintaxă: len (Dict)



Întoarcere: Returnează un număr întreg care este lungimea șirului.

Name:Steve Age:30 Designation:Programmer>

Exemplu de bază de găsire a lungimii unui dicționar

Python3

string ti int








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

>

>

Ieșire:

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

Găsirea lungimii dicționarului imbricat

Luați în considerare următoarele detalii despre o persoană:

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

Problemă când încercați să găsiți lungimea dicționarului imbricat:

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

>

>

Ieșire:
Metoda len() cu chei() : 4
metoda len() cu valori(): 4

Aici, indiferent de metoda pe care o aplicați, veți obține doar „4” ca rezultat. Dar numărul real de intrări este „7”. Cheile sunt numele, vârsta, denumirea, adresa, strada, orașul și țara. Metoda consideră dicționarul exterior, care este o valoare pentru una dintre chei, ca o singură valoare.

Pentru a depăși această problemă, trebuie să adăugăm în mod explicit lungimea dicționarului interior la cel exterior. Poate fi codificat după cum se arată mai jos:

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

ce este myspace

>

>

Ieșire:

The length of the nested dictionary is: 7>

Acum merge bine!!! Cu toate acestea, este posibil să se programeze în mod explicit pentru a adăuga lungimea dicționarelor interne de fiecare dată? Ce se întâmplă dacă nu știm anterior câte dicționare interioare există? Acum luați în considerare următorul detaliu:

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

Aici avem două dicționare interioare. Nu este o modalitate optimizată de a adăuga în mod explicit lungimea dicționarelor interioare de fiecare dată. Putem rezolva această problemă combinând isinstance() cu metoda len(). Ideea este să stocați mai întâi lungimea întregului dicționar într-o variabilă (spune „lungime” aici) . Apoi iterați prin toate valorile () din dicționar și verificați dacă este o instanță a dict. Dacă 'Adevărat' apoi lungimea acelui dicționar interior este găsită și adăugată la variabilă lungime . În acest fel, ar putea fi găsită lungimea totală a unui dicționar imbricat.

Exemplul 1: Găsirea dinamică a lungimii dicționarului imbricat folosind bucla for:

Când avem mai multe chei într-un dicționar ale cărui valori sunt din nou dicționare. Apoi trebuie să verificăm dacă tipul valorii fiecărei chei, dacă este un dicționar, atunci folosim len() pe valoare și adăugăm valoarea la lungimea dicționarului exterior.

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

>

polimorfism

>

Ieșire:

The length of the dictionary is 9>

Notă: Această abordare va funcționa numai atunci când imbricarea dicționarelor este de numai până la 2 niveluri.

Dacă dicționarul este mai adânc imbricat ca mai jos:

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

Exemplul 2: Utilizarea recursiunii pentru a găsi lungimea dicționarului imbricat:

Aici am folosit o funcție recursivă count_nested_len() pentru a număra lungimea fiecărui dicționar, iterăm pe cheile dicționarelor, de îndată ce o valoare este un dicționar, recuzăm acel dicționar.

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

>

>

cum să inițializați o matrice în java

Ieșire:

Nested dictionary length: 11>

Abordarea 3: Utilizarea înțelegerii dicționarului

Python3

# dicționar imbricat
dict2 ={
'Nume':
{
„first_name”: „Steve”,
„Nume”: „Locuri de muncă”
},
„Vârsta”: 30,
„Desemnare”: „Programator”,
'abordare':
{
'Stradă':
{
„st_number”:4,
„st_name”: „Rockins Road”
},
„Oraș”: „Bangalore”,
„Țara”: „India”
}
}

# Utilizarea înțelegerii dicționarului pentru a găsi lungimea dicționarului imbricat
lungime = len({k: v pentru k, v în dict2.items()})

print(Lungimea dicționarului este, lungime)
#Acest cod este contribuit de Edula Vinay Kumar Reddy

METODA 4: Folosirea unei expresii generatoare cu funcția sum().

ABORDARE:

O expresie generator este folosită pentru a crea o secvență de 1, unde fiecare 1 corespunde unei chei din dicționar. Funcția sum() este apoi utilizată pentru a aduna valorile 1, ceea ce oferă lungimea dicționarului.

ALGORITM:

1. Creați o expresie generatoare care generează o secvență de 1 pentru fiecare cheie din dicționar.
2. Folosiți funcția sum() pentru a aduna valorile 1 din secvență.
3.Return suma, care reprezintă lungimea dicționarului.

Python3




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

>

>

Ieșire

3>

Complexitatea de timp a acestei abordări este O(n), unde n este numărul de chei din dicționar.

Complexitatea spațială a acestei abordări este O(1)