Python に txt ファイルを読み取らせ、その中の特定の単語を「XXXX」に置き換えさせようとしています。
すべての単語を含むリストがありますが、問題は return がリストを受け入れないことです。
やってみました
def email2(email):
proprietary_terms = ["she", "personality matrix", "sense of self", "self-preservation", "learning algorithm", "her", "herself"]
for words in email:
if "she" in email:
replaced = email.replace("she", "XXXX")
return replaced
if "personality matrix" in email:
replaced = email.replace("personality matrix", "XXXX")
return replaced
if "sense of self" in email:
replaced = email.replace("sense of self", "XXXX")
return replaced
if "self-preservation" in email:
replaced = email.replace("self-preservation", "XXXX")
return replaced
if "learning algorithm" in email:
replaced = email.replace("learning algorithm", "XXXX")
return replaced
if "her" in email:
replaced = email.replace("her", "XXXX")
return replaced
if "herself" in email:
replaced = email.replace("herself", "XXXX")
return replaced
print(email2(email_two))
これは機能し、(少しいじくり回して)必要なことを実行しますが、ご覧のとおり、コードが不必要に長すぎます。誰かが私にそれを作る方法を教えてくれることを期待していましたif ステートメントにすべての単語を 1 つずつ入力することなく、リスト内のすべての単語を置き換えることができれば、よりコンパクトになります。
------------------------
ループしないでください電子メール内の文字をループします (電子メールのタイプが str の場合、word は単語ではなく文字です!) — 独自の用語をループします。
コードも途中で返されており、複数の単語を置き換えることはありません。最後に、メールチェックの if … は冗長なので省略します。
def email2(email):
proprietary_terms = ["she", "personality matrix", "sense of self", "self-preservation", "learning algorithm", "her", "herself"]
for word in proprietary_terms:
email = email.replace(word, "XXXX")
return email
0
------------------------
proprietary_terms リストを反復処理して、リスト内の単語がメール内に存在するかどうかを確認し、存在する場合は置き換えることができます。
proprietary_terms = ["she", "personality matrix", "sense of self", "self-preservation", "learning algorithm", "her", "herself"]
for word in proprietary_terms:
if word in email:
email = email.replace(word, "XXXX")
return email
------------------------
def check_email(email):
proprietary_terms = ["she", "personality matrix", "sense of self", "self-preservation", "learning algorithm", "her", "herself"]
for word in proprietary_terms:
if word in email:
email.replace(word, "XXXX")
return email
------------------------
re パッケージを使用してこれを行う別の (短い) 方法:
import re
def check_email(email):
proprietary_terms = ["she", "personality matrix", "sense of self", "self-preservation", "learning algorithm", "her", "herself"]
return re.sub('|'.join(proprietary_terms),'XXXX',email)