2017-02-03 7 views
1

、元の文字列のリスト:パイソン、リスト内の要素の複数の部分(リスト内)を交換する方法

Originals = ["nice apple", "orange", "pear sweet", "red ape"] 

削除する文字列のリスト:私が欲しいもの

To_remove = ["nice ", " sweet"] 

達成するためには、元の単語の各要素で削除する必要がある文字列を削除することです

result: ["apple", "orange", "pear", "red ape"] 

私は次のとおりですが、それは良いを生成しません結果。

for t in To_remove: 
    for o in Originals: 
     print o.replace(t, "") 

正しい方法はありますか?ありがとうございました。

+1

* 'しかし、良い結果は得られません。 ' - - **あなたは何を見ますか?**私たちを見せてください! – Wolf

+0

あなたの質問のタイトルはかなり混乱しています。多分あなたの実際の必要性に合うように言い直してください。 – Wolf

+0

タイトルをつけるための提案:** Howto "censor"文字列リストをPythonで** ** :-) – Wolf

答えて

3

文字列は不変です。したがって、文字列に対して呼び出すことのできるメソッドは、インプレースの変更を行いません。あなたはreplaceによって返された文字列を再割り当てする必要があるので、それらはすべて、新しい文字列を返す:

for t in To_remove: 
    for i in range(len(Originals)): 
     Originals[i] = Originals[i].replace(t, "") 

あなたは複数のパターンの交換をマージする方法については、このquestionをチェックアウトすることができます。

+0

にありません。ちょっとしたヒントと、PEP8標準を使用する場合は:スネークケース。 – wencakisa

+0

@Wencakisa OPを参照(* 'スネークケース' *について) – Wolf

+0

@schwobaseggl、ありがとう! –

3

文字列が不変なので、リスト要素を再割り当てする必要があります。

for t in To_remove: 
    for i, o in enumerate(Originals): 
     Originals[i] = o.replace(t, "") 

print Originals 

これが役に立ちます。

+0

教えてくれてありがとう。とても良い!あなたは私が最初に答える答えを選択することを願っています。 –

+0

私は* 'print Originals' *のアイデアが好きです。この部分はOP – Wolf

1

置換の結果を印刷していますが、リストの内容は変更しないでください。 replace methodの文字列(!)の場合)は、リストを変更しているだけでなく、取得している文字列を変更していないことがわかりますfor o in Originalsschwobasegglthangtn[1]がすでに提供しているので、実際の例を含めて省略します。


最初は本当にだった[1]? SOのタイムスタンプは私の個人的な経験と矛盾する。

+0

知識に感謝します。 –

+0

[公式ドキュメント](https://docs.python .org/3/library/stdtypes.html#str。置き換え)は非常にまばらです、多分これはあなたのために悪いGoogleの結果を持っている理由です。 – Wolf

1
Originals = ["nice apple", "orange", "pear sweet", "red ape"] 
To_remove = ["nice ", " sweet"] 
result = [] 

for o in Originals: 
    for t in To_remove: 
     result.append(o.replace(t, "")) 

print result 

これは必要なものですか?

+0

ご協力いただきありがとうございます。 –

+0

もう1つのテキストは、すでに知られている繰り返しの目的を理解するのに役立ちます。 – Wolf

+0

...私はこのことについて自分自身を修正しなければなりません(* '反復' *に関して)あなたはインプレースの交換ではありません。有効なオプション。 – Wolf

関連する問題