Mohammad S. Anwar が主催する Weekly Challenge は、開発者が 2 つのタスクを解決することで競うフレンドリーなコンテストです。学習、共有、楽しみを通じて、あらゆる言語とレベルの開発者の参加を奨励します。
先週、私はウィークリー チャレンジ 299 に参加し、タスク 1: 単語の置換を解決しました。このタスクでは、配列と文が与えられたときに、配列内のいずれかの単語で始まる文内のすべての単語を置き換えるスクリプトを作成することが開発者に要求されました。
この投稿では、タスク 1: ウィークリー チャレンジ 299 の単語を置き換える、の概要とその解決策を示し、短い結論で終わります。
単語の配列と文が与えられます。
指定された配列内のいずれかの単語で始まる、指定された文内のすべての単語を置き換えるスクリプトを作成します。
ウィークリー チャレンジ 299、タスク 1: 単語を置き換える
例 1 ~ 3 は、指定された入力から予想される出力を示しています。
Input: @words = ("cat", "bat", "rat") $sentence = "the cattle was rattle by the battery" Output: "the cat was rat by the bat"
出力は、$sentence 内の任意の単語が $word で始まる場合、@words の $word に置き換えることによって取得できます。次に例を示します。
Input: @words = ("a", "b", "c") $sentence = "aab aac and cac bab" Output: "a a a c b"
Input: @words = ("man", "bike") $sentence = "the manager was hit by a biker" Output: "the man was hit by a bike"
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
私のソリューションでは、replace_word と replace_words という 2 つの関数を使用します。
replace_word 関数は、組み込みの文字列メソッド split、startswith、join とリスト内包表記を使用して、this_word で始まる文字列文内の単語を this_word に置き換えます。
replace_words 関数は、配列 Word 内の各単語の文に replace_word を連続的に適用します。次に、変換された文を返します。
この投稿では、タスク 1: ウィークリー チャレンジ 299 の単語を置き換えるの概要とその解決策を紹介しました。
ソリューションでは、split、join、startswith などの組み込みメソッドを使用したため、単純で冗長で、おそらく理解しやすいものになっています。このようなアプローチは、Python を初めて使用する場合、プログラミングに慣れていない場合、または正規表現に慣れていない場合に役立つ場合があります。
以上がタスクROMに対する私のPython言語ソリューション The Weekly Challengeの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。