Compte tenu de la chaîne: Comment puis-je obtenir le nombre d'occurrences de chaque caractère? p> p>
7 Réponses :
in 2.7 et 3.1 Il y a un outil appelé compteur: docs . Comme indiqué dans les commentaires, il n'est pas compatible avec 2,6 ou moins, mais c'est Backportré . < / p> p>
Jakob, si vous voulez une ligne: importer des collections; Collections.counter ("DQDWQFWQFGGQWQ") Ta-Dah. :)
Pour chaque lettre compter la différence entre la chaîne avec cette lettre et sans elle, de cette façon, vous pouvez obtenir le nombre de searys
Hé, personne ne parle d'efficacité, seulement de la taille :)
a.count (lettre) code> est plus clair que len (a) -len (A.RePlace (lettre, '')) code> si vous voulez de cette façon que vous pouvez Obtenez le nombre de seventions i>
Pas très efficace, mais c'est une ligne ...
In [24]: a='dqdwqfwqfggqwq'
In [25]: dict((letter,a.count(letter)) for letter in set(a))
Out[25]: {'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}
C'est O (n * sigma) où Sigma est un nombre de lettres uniques; belle amélioration
Code Golf: Count = Lambda S: dict ((c, S.Count (c)) pour C en jeu (s)) code>
Meilleur code Golf: Count = Lambda x: {T: x.count (t) pour t in x}
lettercounts = {}
for letter in a:
lettercounts[letter] = lettercounts.get(letter,0)+1
Un code ligne pour trouver une occurrence de chaque caractère de la chaîne. P>
pour i in set (a): Imprimer ('% S Compte est% d'% (I, A.Count (I))) P>
Vous pouvez le faire: sortie Cette méthode est efficace et est testée pour Python3. P> P> {'d': 2, 'f': 2, 'g': 2, 'Q': 5, 'w ': 3} code> p>
Code Python Pour vérifier les occurrences de chaque caractère de la chaîne: Veuillez essayer ce code si un problème ou des améliorations s'il vous plaît commentaires. P> P>
Solution compacte tendent à produire un code plus concis
Le code concis est bon, mais la clarté est plus importante, IMHO.
Cela a un tas d'autres façons, defaultDict est une bonne façon de le faire sans compteur (2,5+) Stackoverflow.com/Questtions/991350/...