我有一個帶有一些我想替換的特殊標記單詞的短語。這些詞匹配字典中的一個關鍵字,該關鍵字具有我想隨機選擇替換的單詞列表。Python:用隨機選擇替換多個單詞
我想知道是否有更好的方式去做這件事,或者是我看起來像一個有效的方法?我有一種感覺,lambda
可能有一個更明智的方式,但我不確定。
希望代碼能夠自己解釋!
import random
words = {"fruit":["apples", "bananas", "oranges"],
"veggies":["broccoli", "corn", "cucumbers"]}
txt = "I'm not in a mood for [veggies], I rather have [fruit], and [fruit]."
for key in words:
target_word = "[{0}]".format(key)
while target_word in txt:
txt = txt.replace(target_word, random.choice(words[key]), 1)
跑了幾次會隨機輸出:
我不是在玉米地裏的心情,我寧願有香蕉,和蘋果。
我不喜歡西蘭花,我喜歡吃桔子和香蕉。
我不喜歡黃瓜,我喜歡蘋果和橘子。
..和等..
我應該指出,有可能是在words
任意數字鍵,以及任意數量的文本標記的話。
謝謝,雖然我喜歡你所提出的,但我確實有點贊同Python Zen。也許最好是堅持我所擁有的東西。 –
@GreenCell是的,但re.sub更快。如果速度真的很重要,它確實值得。 – robyschek