logo

Obtenir la longueur du dictionnaire en Python

Pour calculer la longueur d’un dictionnaire, nous pouvons utiliser la méthode len() intégrée à Python. La méthode len() renvoie le nombre de clés dans un Dictionnaire Python .

Syntaxe Python Dict len()

Syntaxe: len(Dict)



Retour: Il renvoie un entier qui correspond à la longueur de la chaîne.

Name:Steve Age:30 Designation:Programmer>

Exemple de base pour trouver la longueur d'un dictionnaire

Python3








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

>

>

Sortir:

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

Recherche de la longueur du dictionnaire imbriqué

Considérez les détails suivants sur une personne :

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

Problème en essayant de trouver la longueur du dictionnaire imbriqué :

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

>

>

Sortir:
Méthode len() avec keys() : 4
Méthode len() avec valeurs() : 4

Ici, quelle que soit la méthode que vous appliquez, vous n’obtiendrez que « 4 » comme résultat. Mais le nombre réel d’entrées est de « 7 ». Les clés sont le nom, l’âge, la désignation, l’adresse, la rue, la ville et le pays. La méthode considère le dictionnaire externe qui est une valeur pour l'une des clés comme une valeur unique.

Pour surmonter ce problème, nous devons explicitement ajouter la longueur du dictionnaire interne à celle du dictionnaire externe. Il peut être codé comme indiqué ci-dessous :

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

Sharwanand

>

>

Sortir:

The length of the nested dictionary is: 7>

Maintenant ça marche bien !!! Cependant, est-il possible de programmer explicitement pour ajouter la longueur des dictionnaires internes à chaque fois ? Que se passe-t-il si nous ne savons pas au préalable combien de dictionnaires internes existe-t-il ? Considérons maintenant le détail suivant :

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

Nous avons ici deux dictionnaires internes. Ce n'est pas une manière optimisée d'ajouter explicitement la longueur des dictionnaires internes à chaque fois. Nous pouvons résoudre ce problème en combinant la méthode isinstance() avec la méthode len(). L'idée est de stocker d'abord la longueur de l'ensemble du dictionnaire dans une variable (dites « longueur » ici) . Parcourez ensuite toutes les valeurs() du dictionnaire et vérifiez s'il s'agit d'une instance de dict. Si 'Vrai' puis la longueur de ce dictionnaire interne est trouvée et ajoutée à la variable longueur . De cette façon, la longueur totale d'un dictionnaire imbriqué pourrait être trouvée.

Exemple 1 : Recherche dynamique de la longueur d'un dictionnaire imbriqué à l'aide de la boucle for :

Quand nous avons plus de clés dans un dictionnaire dont les valeurs sont à nouveau des dictionnaires. Ensuite, nous devons vérifier si le type de la valeur de chaque clé, s'il s'agit d'un dictionnaire, alors nous utilisons len() sur la valeur et ajoutons la valeur à la longueur du dictionnaire externe.

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

>

tableau de chaînes en langage C

>

Sortir:

The length of the dictionary is 9>

Note: Cette approche ne fonctionnera que lorsque l'imbrication des dictionnaires ne dépasse pas 2 niveaux.

Si le dictionnaire est plus profondément imbriqué comme ci-dessous :

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

Exemple 2 : Utilisation de la récursivité pour trouver la longueur du dictionnaire imbriqué :

Ici nous avons utilisé une fonction récursive count_nested_len() pour compter la longueur de chaque dictionnaire, on itère sur les clés des dictionnaires, dès qu'une valeur est un dictionnaire, on se récuse sur ce dictionnaire.

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

>

>

Sortir:

Nested dictionary length: 11>

Approche 3 : Utiliser la compréhension du dictionnaire

Python3

# dictionnaire imbriqué
dict2 ={
'Nom':
{
'prénom' : 'Steve',
« Nom » : « Emplois »
},
« Âge » : 30,
« Désignation » : « Programmeur »,
'adresse':
{
'Rue':
{
'st_numéro' : 4,
« st_name » : « Route Rockins »
},
« Ville » : « Bangalore »,
« Pays » : « Inde »
}
}

# Utiliser la compréhension du dictionnaire pour trouver la longueur du dictionnaire imbriqué
longueur = len({k : v pour k, v dans dict2.items()})

print(La longueur du dictionnaire est de, longueur)
#Ce code est contribué par Edula Vinay Kumar Reddy

MÉTHODE 4 : Utilisation d'une expression génératrice avec la fonction sum().

APPROCHE:

Une expression génératrice est utilisée pour créer une séquence de 1, où chaque 1 correspond à une clé du dictionnaire. La fonction sum() est ensuite utilisée pour additionner les 1, ce qui donne la longueur du dictionnaire.

ALGORITHME:

1.Créez une expression génératrice qui génère une séquence de 1 pour chaque clé du dictionnaire.
2.Utilisez la fonction sum() pour additionner les 1 dans la séquence.
3.Renvoyer la somme qui représente la longueur du dictionnaire.

comment récupérer des applications cachées

Python3




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

>

>

Sortir

3>

La complexité temporelle de cette approche est O(n), où n est le nombre de clés du dictionnaire.

La complexité spatiale de cette approche est O(1)