logo

Iegūstiet vārdnīcas garumu Python

Lai aprēķinātu vārdnīcas garumu, mēs varam izmantot Python iebūvēto len() metodi. Metode len() atgriež atslēgu skaitu a Python vārdnīca .

Python Dict len() Sintakse

Sintakse: len (dikts)



Atgriezties: Tas atgriež veselu skaitli, kas ir virknes garums.

Name:Steve Age:30 Designation:Programmer>

Pamatpiemērs vārdnīcas garuma noteikšanai

Python3








skudra pret maven

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

>

>

Izvade:

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

Ligzdotas vārdnīcas garuma atrašana

Apsveriet šādu informāciju par personu:

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

Problēma, mēģinot atrast ligzdotās vārdnīcas garumu:

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

>

>

Izvade:
Len() metode ar taustiņiem(): 4
len() metode ar vērtībām(): 4

Šeit, neatkarīgi no tā, kuru metodi izmantojat, jūs saņemsit tikai “4”. Bet faktiskais ierakstu skaits ir “7”. Atslēgas ir vārds, vecums, nosaukums, adrese, iela, pilsēta un valsts. Metode uzskata ārējo vārdnīcu, kas ir vērtība vienam no taustiņiem, kā vienu vērtību.

Lai novērstu šo problēmu, mums ir skaidri jāpievieno iekšējās vārdnīcas garums ārējai vārdnīcai. To var kodēt, kā norādīts zemāk:

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

>

>

Izvade:

The length of the nested dictionary is: 7>

Tagad tas darbojas labi!!! Tomēr vai ir iespējams skaidri ieprogrammēt, lai katru reizi pievienotu iekšējo vārdnīcu garumu? Ko darīt, ja mēs iepriekš nezinām, cik iekšējo vārdnīcu ir? Tagad apsveriet šādu detaļu:

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

Šeit mums ir divas iekšējās vārdnīcas. Tas nav optimizēts veids, kā katru reizi skaidri pievienot iekšējo vārdnīcu garumu. Mēs varam atrisināt šo problēmu, apvienojot isinstance() ar len() metodi. Ideja ir vispirms saglabāt visas vārdnīcas garumu mainīgajā (sakiet šeit 'garums') . Pēc tam atkārtojiet visas vārdnīcas vērtības () un pārbaudiet, vai tas ir dict gadījums. Ja ‘Tiesa’ tad tiek atrasts šīs iekšējās vārdnīcas garums un pievienots mainīgajam garums . Tādā veidā var atrast ligzdotas vārdnīcas kopējo garumu.

1. piemērs: ligzdotās vārdnīcas garuma dinamiska atrašana, izmantojot for-loop:

Kad mums vārdnīcā ir vairāk taustiņu, kuru vērtības atkal ir vārdnīcas. Pēc tam mums ir jāpārbauda, ​​vai katras atslēgas vērtības veids, ja tā ir vārdnīca, mēs izmantojam len() vērtībai un pievienojam vērtību ārējās vārdnīcas garumam.

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

>

>

Izvade:

The length of the dictionary is 9>

Piezīme: Šī pieeja darbosies tikai tad, ja vārdnīcu ligzdošana ir tikai līdz 2 līmeņiem.

Ja vārdnīca ir dziļāk ligzdota, kā norādīts tālāk:

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

2. piemērs: Rekursijas izmantošana, lai atrastu ligzdotās vārdnīcas garumu:

Šeit mēs esam izmantojuši rekursīvu funkciju count_nested_len(), lai saskaitītu katras vārdnīcas garumu, mēs atkārtojam vārdnīcu taustiņus. Tiklīdz vērtība ir vārdnīca, mēs atkārtojam šo vārdnīcu.

Python3


kas ir obj java



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

>

>

Izvade:

Nested dictionary length: 11>

3. pieeja: vārdnīcas izpratnes izmantošana

Python3

# ligzdota vārdnīca
dict2 ={
‘Vārds’:
{
'first_name': 'Stīvs',
'Uzvārds':'Darbs'
},
'Vecums': 30,
“Apzīmējums”: “Programmētājs”,
'adrese':
{
'Iela':
{
'st_number':4,
'st_name': 'Rokins Road'
},
'Pilsēta': 'Bangalora',
'Valsts': 'Indija'
}
}

# Izmantojot vārdnīcas izpratni, lai atrastu ligzdotās vārdnīcas garumu
garums = len({k: v for k, v in dict2.items()})

drukāt (vārdnīcas garums ir, garums)
#Šo kodu ir sagatavojusi Edula Vinay Kumar Reddy

4. METODE: ģeneratora izteiksmes izmantošana ar sum() funkciju.

PIEEJA:

Ģeneratora izteiksme tiek izmantota, lai izveidotu 1 secību, kur katrs 1 atbilst atslēgai vārdnīcā. Funkciju summa () pēc tam izmanto, lai saskaitītu 1, kas norāda vārdnīcas garumu.

ALGORITMS:

1. Izveidojiet ģeneratora izteiksmi, kas ģenerē 1 sekvenci katrai vārdnīcas atslēgai.
2. Izmantojiet sum() funkciju, lai secībā saskaitītu 1.
3.Atgrieziet summu, kas apzīmē vārdnīcas garumu.

Python3

java kodēšana if else paziņojums




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

>

>

Izvade

3>

Šīs pieejas laika sarežģītība ir O(n), kur n ir atslēgu skaits vārdnīcā.

Šīs pieejas kosmosa sarežģītība ir O (1)