web-dev-qa-db-fra.com

Comment trouver la longueur des valeurs du dictionnaire

Je suis assez nouveau dans tout cela, alors c’est peut-être une question de noobie .. mais je cherche à trouver la longueur des valeurs du dictionnaire ... mais je ne sais pas comment cela peut être fait.

Donc, par exemple,

d = {'key':['hello', 'brave', 'morning', 'sunset', 'metaphysics']}

Je me demandais s'il y avait un moyen de trouver le len ou nombre d'éléments de la valeur du dictionnaire.

Merci

25
Andre

Sûr. Dans ce cas, vous feriez simplement:

length_key = len(d['key'])  # length of the list stored at `'key'` ...

Il est difficile de dire pourquoi vous le souhaitez réellement, mais il serait peut-être utile de créer un autre dict qui mappe les clés sur la longueur des valeurs:

length_dict = {key: len(value) for key, value in d.items()}
length_key = length_dict['key']  # length of the list stored at `'key'` ...
29
mgilson

Faisons quelques expériences pour voir comment nous pourrions obtenir/interpréter la longueur de différentes valeurs dict/array dans un dict.

créer notre test dict, voir liste et compréhensions dict :

>>> my_dict = {x:[i for i in range(x)] for x in range(4)}
>>> my_dict
{0: [], 1: [0], 2: [0, 1], 3: [0, 1, 2]}

Obtenir la longueur de la valeur d'une clé spécifique:

>>> my_dict[3]
[0, 1, 2]
>>> len(my_dict[3])
3

Obtenez un dict des longueurs des valeurs de chaque clé:

>>> key_to_value_lengths = {k:len(v) for k, v in my_dict.items()}
{0: 0, 1: 1, 2: 2, 3: 3}
>>> key_to_value_lengths[2]
2

Obtenez la somme des longueurs de toutes les valeurs du dict:

>>> [len(x) for x in my_dict.values()]
[0, 1, 2, 3]
>>> sum([len(x) for x in my_dict.values()])
6
7
Lundy

Pour trouver toutes les longueurs des valeurs dans un dictionnaire, vous pouvez procéder comme suit:

lengths = [len(v) for v in d.values()]
6
squiguy