J'ai une liste de mots dans un dictionnaire avec la valeur = la répétition du mot-clé mais je veux seulement une liste de mots distincts donc je voulais compter le nombre de mots-clés. Existe-t-il un moyen de compter le nombre de mots clés ou existe-t-il une autre façon de rechercher des mots distincts?
234
len(yourdict.keys())
etlen(yourdict)
sont O (1). Ce dernier est légèrement plus rapide. Voir mes tests ci-dessous.len(yourdict.values())
Le nombre de mots distincts (c'est-à-dire le nombre d'entrées dans le dictionnaire) peut être trouvé en utilisant la
len()
fonction.Pour obtenir tous les mots distincts (c'est-à-dire les clés), utilisez la
.keys()
méthode.la source
Appeler
len()
directement sur votre dictionnaire fonctionne et est plus rapide que de construire un itérateurd.keys()
et de l'appelerlen()
, mais la vitesse de l'un ou l'autre sera négligeable par rapport à tout ce que fait votre programme.la source
Si la question concerne le comptage du nombre de mots clés, je recommanderais quelque chose comme
dans la fonction principale ont quelque chose qui boucle dans les données et transmet les valeurs à la fonction countoccurrences
Les sorties de code
la source
countoccurrences()
devrait être le cascount_occurrences()
. En outre, si vous importezcollections.Counter
, il y a une meilleure façon de le faire:from collections import Counter; store = Counter(); for data in list: store[list] += 1
.Certaines modifications ont été apportées à la réponse publiée UnderWaterKremlin pour la rendre compatible avec Python3. Un résultat surprenant ci-dessous comme réponse.
Spécifications du système:
Résultat:
1) = 37,0100378
2) = 37,002148899999995
Il semble donc que ce
len(d.keys())
soit actuellement plus rapide que la simple utilisationlen()
.la source