Je veux multiplier la lettre de chaîne par chiffres du nombre. Par exemple pour un mot "numéro" et numéro "123" La sortie serait "Nuummmbeerrr". Comment créer une fonction qui fait cela? Mon code n'est pas utile, car cela ne fonctionne pas.
Je n'ai que ce p> pour new_word ("A3N5Z1") est aaannnnnz em>. p> p>
3 Réponses :
Cela résoudra votre problème, n'hésitez pas à le modifier pour répondre à vos besoins.
number = "123"
word = "number"
output = []
i = 0
for letter in word:
if(i == len(number)):
i = 0
output += [letter for _ in range(int(number[i]))]
i += 1
string_output = ''.join(output)
print(string_output)
Merci, je ne sais pas "cycle". Y a-t-il une autre solution pour les débutants?
Je dirais que cela est beaucoup plus facile à comprendre que la réponse supérieure à la note.
Vous pouvez utiliser ZIP CODE> Pour correspondre à chaque chiffre à son caractère respectif dans le mot (en utilisant itheroTools.cycle code> pour le cas que le mot est plus long), alors il suffit de multiplier le caractère de ce chiffre, puis rejoignez enfin une seule chaîne.
Essayez ceci: P>
nuummmbeerrr
Merci, je ne sais pas "cycle". Y a-t-il une autre solution pour les débutants?
@piteer je suis lié aux documents officiels, si vous voulez apprendre :) Autres réponses Solutions proposées sans cela.
Utilisation de la compréhension de la liste et sans ce qu'il fait (avec plus de détails) est le suivant: p> iTertools code>:
Compte tenu de la nouvelle utilisation de l'utilisateur et ne connaît pas d'utils comme le cycle, il pourrait être plus facile d'écrire cela pour eux dans une boucle verbeuse plutôt que la compréhension de la liste longue
Vous avez raison - j'ai édité ma réponse avec une version Verbose expliquée de la doublure!
agréable. au lieu de "". Joindre ([caractère] * n) code> Vous pouvez simplement utiliser caractère * n code>
Frais! Je ne savais pas que nous pouvions faire ça
Je dirais toujours que c'est une solution très compliquée pour un débutant. Utilisation de la compréhension de la liste, de la tranchée, du zip et de la jointure à une seule réponse est probablement un peu de surenche pour une personne qui est débutant. Vous devriez au moins être plus verbeux avec ([int (c) pour C dans str (numéro)] * len (STR (numéro))) [0: len (mot)] code>. Vous obtiendrez une réponse plus propre si vous n'utilisez pas la liste de liste (comme la réponse de Yxor).
mon code n'est pas utile i> - N'ayez pas peur de poster ce code ici, il est important de montrer vos efforts actuels
Le numéro a-t-il un into ou une chaîne? (
123 code> ou"123" code>?)Le numéro 123 est INT.
"Mon code n'est pas utile, car cela ne fonctionne pas." I> Vous pourriez être plus proche de la solution que prévu.