J'ai besoin de créer une fonction, où, si je donne une entrée de 999933. Il devrait donner une sortie "ZE". Il travaille essentiellement en tant que clavier de téléphone mobile numérique. Comment puis-je cela. J'ai cherché à obtenir un exemple d'échantillon sur Internet. Tout, j'ai eu était tout à fait opposé. Comme, donnant le texte en entrée et vous obtiendrez le numéro. Je ne pouvais pas obtenir le flux exact de, comment y parvenir. S'il vous plaît laissez-moi savoir, comment puis-je faire cela.
3 Réponses :
Créer une cartographie pad_number à la lettre.
Utilisez itheroTools.groupby code> à itérer sur des presses de pad consécutives et calculez quelle lettre nous obtenons. letters = {"3": "def", "9": "wxyz"}
def number_to_text(val):
return "".join([letters[d][(len(list(g)) - 1) % len(letters[d])] for d, g in itertools.groupby(str(val))])
print(number_to_text(999933))
# ze
Réponse sans explication n'affiche rien
Vous devez
(\ d) \ 1 * code> qui capturer un chiffre puis le même chiffre x fois li>
- Utilisez la valeur d'un chiffre dans le groupe pour obtenir la clé li>
- Utilisez la longueur de celui-ci pour obtenir la lettre li>
ul>
xxx pré> à l'aide de la compréhension de la liste p> xxx pré> p>
Qu'est-ce que "re" ici. Quand j'exécute le code. Je reçois l'erreur. "re" n'est pas défini
Module de regex @Jeyeanthkanagaraj regex importer re code>
Ceci est bien trop simplifié et n'a presque aucune explication quant à la façon dont cela fonctionne vraiment.
@Seedyrom vraiment? Partie: 1.Le regex au groupe? 2. Obtenir un int code>? 3. Obtenir une longueur?
Vous avez les marches en haut, mais vous sautez complètement sur ce que la Groupby fait et comment votre code fonctionne réellement. Je peux supposer que l'OP est un débutant et ne comprend probablement pas ce que vous faites réellement.
@azro je pensais que je regardais l'autre solution, désolé c'est tard PST! Mais toujours re.finditer code> est TERSE pour un débutant et a le même effet que Groupby ici. Vous devriez au moins expliquer comment cela fonctionne!
Les autres réponses sont correctes, mais j'ai essayé d'écrire un monde moins bref plus vrai (y compris les doctests) expliquant de la manière dont les résultats précédents fonctionnaient:
espère que cela vous aide à comprendre ce qui se passe au niveau inférieur! De plus, si vous ne faites pas confiance à mon code, il suffit de sauvegarder cela dans un fichier et d'exécuter (Notes: sans le drapeau -v, il ne produira rien, le silence est doré!) em> p> p> dialpad_text.py code>: p>: p>: python -m doctest donalpad_text.py code> et il passera les doctests du module. Strong> p>
Qu'avez-vous essayé? Avez-vous construit la structure de la lettre?