ネストされた "for"ループを使用せずに2つのリストを反復処理するにはどうすればよいですか?入れ子の "for"ループを使用せずに2つのリストを反復する方法
二つのリストの間のインデックスは、必ずしも、より具体的に、私は文字列のリストと禁止単語のリストを取る関数をコーディングしています同じ
である必要はありません。禁止された単語のいずれかが文字列のそれぞれにある場合、その文字列全体が削除されます。
私がやってみました:
for word in bannedWords:
for string in messages:
if word in string:
messages.remove(string)
これを、文字列変数がそのように台無し「のための」ループをメッセージから文字列をします削除し、「for」ループで使用されているためしかし、動作しません。 。実装するためのより良い方法は何ですか?ありがとう。
def filter_messages(messages, bannedWords):
for string in messages:
if all(word not in string for word in bannedWords):
yield string
今すぐあなただけのあなたに良いメッセージを与える
ジェネレータ関数を持っている:
それはあなたがのために「入れ子に必要な私には思えますあなたがしたいことをするループ。あなたの問題は実際には: "それを繰り返しながらリストから項目を削除するにはどうすればいいですか?"ここでいくつかの答えを見つけることができます:http://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python – Mel