Comment puis-je parcourir une chaîne de caractères en Python?
Comme un exemple, disons que je voulais à la liste de la fréquence de chaque lettre de l'alphabet dans une chaîne de caractères. Quelle serait la meilleure façon de le faire?
Ceci est un exemple de ce que je suis en train de penser... la question est de savoir comment faire allTheLetters égal à lettres sans quelque chose comme allTheLetters = "abcdefg...xyz". Dans de nombreuses autres langues, je pourrais juste faire une lettre++ et l'incrément de mon chemin à travers l'alphabet, mais jusqu'à présent je n'ai pas trouver un moyen de le faire en python.
def alphCount(text):
lowerText = text.lower()
for letter in allTheLetters:
print letter + ":", lowertext.count(letter)
Vous devez vous connecter pour publier un commentaire.
La question que vous avez posée (comment parcourir l'alphabet) n'est pas la même question que le problème que vous essayez de résoudre (comment compter la fréquence des lettres dans une chaîne de caractères).
Vous pouvez utiliser des chaînes de caractères.minuscules, comme d'autres affiches ont suggéré:
Faire les choses de la façon dont vous êtes en "habitués", le traitement des lettres que des chiffres, vous pouvez utiliser le bouton "ord" et "chr" des fonctions. Il n'y a absolument aucune raison de jamais faire exactement cela, mais peut-être à rapprocher de ce que vous êtes en train d'essayer de comprendre:
Vous pouvez dire qu'il fait la bonne chose parce que ce code imprime
True
:Mais, pour résoudre le problème que vous êtes en train d'essayer de le résoudre, vous souhaitez utiliser un dictionnaire et de recueillir les lettres que vous allez:
Utiliser comme:
Ce sera imprimée '3' et '1', respectivement.
Notez que cela fonctionne pour unicode ainsi:
Si vous essayez l'autre approche sur unicode (incrémentation par le biais de chaque personnage), vous auriez du attendre un long moment; il y a des millions de caractères unicode.
Pour mettre en œuvre votre fonction d'origine (imprimer le nombre de chaque lettre dans l'ordre alphabétique) en termes de ceci:
C'est effectivement fourni par la chaîne de module, c'est pas comme si vous devez taper manuellement vous-même 😉
Si vous voulez juste faire un nombre d'occurrences d'une chaîne de caractères, essayez ceci:
Pour compter les objets, les évident solution est la Compteur
c = Counter(text.lower())
Entendez-vous à l'aide de:
puis,
Toutes les lettres minuscules sont pris en compte, manquant compteurs ont la valeur zéro.
à l'aide de générateurs:
Quelque chose comme cela?
Question principale est de "parcourir l'alphabet":
Comment obtenir la lettre de fréquences avec efficacité et sans compter non-lettre de caractères:
Comment à ce sujet, d'utiliser des lettres, des chiffres et des signes de ponctuation (toutes utilisables pour former un Django clé):
Exemple de résultat: coOL:V!D+P,&S*hzbO{a0_6]2!{4|OIbVuAbq0:
Suffit d'utiliser:
ou
C'est ce que je fais: