2017-08-17 11 views
3

投稿文はツイートの一覧です。すべてのツイートのURLアドレスを "URL"に置き換えたいしかし、私は "post_text"を印刷するとき、私は何かが変更されて参照してください、私は "ツイート"私はそれが置き換えられて参照してください印刷する。 post_textのurlアドレスをどのように置き換えることができますか?正規表現を使用して単語を置き換える

for tweet in post_text: 
    tweet=re.sub(r'http\S*', "URL", tweet) 
+3

計算された 'tweet'をあなたのリストに戻すことは決してないので、正規表現の置き換えは決して「スティック」にはなりません。解決法については、下記の回答を参照してください。 –

答えて

7

この問題は、tweet変数がリストに割り当てられていない新しい変数であるために発生しています。

ではなく、リストの内包表記を使用してみてください:

post_text = [re.sub(r'http\S*', "URL", tweet) for tweet in post_text] 

それとも、ループの中にアイテムのインデックスを使用するようにenumerateを使用することができます。

for i, tweet in enumerate(post_text): 
    post_text[i] = re.sub(r'http\S*', "URL", tweet) 
+0

ありがとう!それは働いている。私はPythonで新しくなったのですが、post_textの後に[:]を入れなければならない理由を尋ねるかもしれませんが、まだ見ていませんか?他のすべては明らかです。 –

+0

この場合は必要ありません。私は答えを簡略化するためにそれを削除しました – Milk

+0

@cvizrada、これはあなたのために働いた場合の解決策として答えをマークすることを忘れないでください:) – MacMcIrish

関連する問題