首頁 >後端開發 >Python教學 >我的 Python 語言任務解決方案 ROM 每週挑戰

我的 Python 語言任務解決方案 ROM 每週挑戰

Patricia Arquette
Patricia Arquette原創
2024-12-17 20:37:10227瀏覽

My Python Language Solution to Task rom The Weekly Challenge

一、簡介

每週挑戰賽由 Mohammad S. Anwar 組織,是一場友好的競賽,開發者透過解決兩個任務進行競爭。它鼓勵所有語言和級別的開發者透過學習、分享和娛樂來參與。

上週我參加了每週挑戰 299,解決了任務 1:替換單字。該任務要求開發人員編寫一個腳本,當給定一個數組和一個句子時,該腳本會替換句子中以數組中的任何單字開頭的所有單字。

在這篇文章中,我將概述任務 1:替換每週挑戰 299 中的單詞,並給出一個簡短的結論。

2. 任務 1:替換單字

給你一組單字和一個句子。

編寫一個腳本來替換給定句子中以給定數組中的任何單字開頭的所有單字。

每週挑戰 299,任務 1:替換單字

範例 1 - 3 說明了給定輸入的預期輸出。

實施例1

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 即可獲得輸出,例如:

  • 「cattle」一詞以「cat」一詞開頭,因此將「cattle」替換為「cat」會將句子轉換為「the cat was raid by the Battery」。
  • 電池這個字以 the bat 開頭,因此用 bat 取代 Battery 會將句子轉換為 the cat wasoracle by the bat。
  • rattle 這個字以rat 這個字開頭,因此將rattle 替換為rat,將句子轉換為cat was raid by the bat。

實施例2

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

實施例3

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

3.我的解決方案

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。

replace_word 函數使用內建字串方法 split、startswith 和 join 以及列表理解,將字串句子中以 this_word 開頭的任何單字替換為 this_word。

  • Sentence.split(' ') 使用 (' ') 作為分隔符號將句子拆分為單字列表。
  • 列表理解 [this_word if word.startswith(this_word) else word for word in...] 從分割句子列表中建立另一個單字列表,當單字以 this_word 開頭時用 this_word 替換它。
  • ' '.join(...) 使用 (' ') 將第二個清單連接成字串
  • return 回傳字串

replace_words 函數連續將replace_word 應用於數組words 中每個單字的句子。然後它返回轉換後的句子。

4. 結論

在這篇文章中,我概述了任務 1:取代《每週挑戰 299》中的單詞,並給出了我的解決方案。

由於我在解決方案中使用了 split、join 和startswith 等內建方法,因此它很簡單、冗長,而且可能很容易理解。如果您是 Python 新手、程式設計新手或不熟悉正規表示式,這種方法可能會對您有所幫助。

以上是我的 Python 語言任務解決方案 ROM 每週挑戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn