Maison >développement back-end >Tutoriel Python >Ma solution en langage Python pour la tâche du défi hebdomadaire

Ma solution en langage Python pour la tâche du défi hebdomadaire

Patricia Arquette
Patricia Arquetteoriginal
2024-12-17 20:37:10218parcourir

My Python Language Solution to Task rom The Weekly Challenge

1. Présentation

Le Weekly Challenge, organisé par Mohammad S. Anwar, est une compétition amicale dans laquelle les développeurs s'affrontent en résolvant une paire de tâches. Il encourage la participation des développeurs de toutes langues et de tous niveaux à travers l'apprentissage, le partage et le plaisir.

La semaine dernière, j'ai participé au défi hebdomadaire 299 en résolvant la tâche 1 : Remplacer les mots. La tâche mettait les développeurs au défi d'écrire un script qui, lorsqu'on leur donnait un tableau et une phrase, remplaçait tous les mots de la phrase commençant par l'un des mots du tableau.

Dans cet article, je présente un aperçu et ma solution pour la tâche 1 : Remplacer les mots du défi hebdomadaire 299 et je termine par une brève conclusion.

2. Tâche 1 : Remplacer les mots

Vous recevez un tableau de mots et une phrase.

Écrivez un script pour remplacer tous les mots de la phrase donnée qui commencent par l'un des mots du tableau donné.

Le défi hebdomadaire 299, Tâche 1 : Remplacer les mots

Les exemples 1 à 3 illustrent les résultats attendus à partir d'entrées données.

Exemple 1

Input: @words = ("cat", "bat", "rat")
       $sentence = "the cattle was rattle by the battery"
Output: "the cat was rat by the bat"

Le résultat peut être obtenu en remplaçant n'importe quel mot de $phrase par $word de @words s'il commence par $word, par exemple :

  • Le mot bétail commence par le mot chat, donc remplacer bétail par chat transforme la phrase en chat était hochet par la batterie.
  • Le mot batterie commence par la chauve-souris, donc remplacer la batterie par la chauve-souris transforme la phrase en chat était hochet par la chauve-souris.
  • Le mot hochet commence par le mot rat, donc remplacer hochet par rat, transforme la phrase en chat était hochet par la chauve-souris.

Exemple 2

Input: @words = ("a", "b", "c")
       $sentence = "aab aac and cac bab"
Output: "a a a c b"

Exemple 3

Input: @words = ("man", "bike")
       $sentence = "the manager was hit by a biker"
Output: "the man was hit by a bike"

3. Ma solution

def replace_word(sentence, this_word):
    return ' '.join([this_word if word.startswith(this_word) else word for word in sentence.split(' ')])

def replace_words(words, sentence):
    for word in words:
        sentence = replace_word(sentence,
                                word)
    return sentence

Ma solution utilise deux fonctions : replace_word et replace_words.

La fonction replace_word remplace n'importe quel mot de la phrase de chaîne commençant par this_word par this_word à l'aide des méthodes de chaîne intégrées split, startwith et join et d'une compréhension de liste.

  • sentence.split(' ') divise la phrase en une liste de mots en utilisant (' ') comme délimiteur.
  • La compréhension de liste [this_word if word.startswith(this_word) else mot pour mot dans...] construit une autre liste de mots à partir de la liste de phrases divisées, en remplaçant un mot par this_word lorsqu'il commence par this_word.
  • ' '.join(...) concatène la deuxième liste en une chaîne en utilisant (' ')
  • return renvoie la chaîne

La fonction replace_words applique successivement replace_word à la phrase pour chaque mot du tableau de mots. Il renvoie ensuite la phrase transformée.

4. Conclusion

Dans cet article, j'ai présenté un aperçu et ma solution de la tâche 1 : Remplacer les mots du défi hebdomadaire 299.

Depuis que j'ai utilisé des méthodes intégrées telles que split, join et Startswith dans ma solution, elle est simple, détaillée et peut-être facile à comprendre. Une telle approche peut vous être utile si vous êtes nouveau sur Python, nouveau en programmation ou peu familier avec les expressions régulières.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn