替换标签

时间:2018-03-02 11:56:22

标签: python regex string replace

我一直在尝试找到一种方法来替换Python中的字符串中的标签。

我目前所拥有的是文字:

you should buy a {{cat_breed + dog_breed}} or a {{cat_breed + dog_breed}}

cat_breeddog_breed是猫和狗品种的列表。

我最终想要的是:

you should buy a Scottish short hair or a golden retriever

我希望标签被两个列表中的一个中的随机条目替换。

我一直在关注re.sub(),但我不知道如何解决这个问题而不只是在两个标签中都得到相同的结果。

2 个答案:

答案 0 :(得分:1)

使用random.sample从群体中获取两个独特元素。

import random
cats = 'lazy cat', 'cuddly cat', 'angry cat'
dogs = 'dirty dog', 'happy dog', 'shaggy dog'

print("you should buy a {} or a {}".format(*random.sample(dogs + cats, 2)))

这里没有理由使用正则表达式。只需使用string.format。

答案 1 :(得分:0)

我希望下面的想法能让您了解如何完成任务:

list1 = ['cat_breed1', 'cat_breed2']
list2 = ['dog_breed1', 'dog_breed2']


a = random.choice(list1)
b = random.choice(list2)


sentence =  "you should buy a %s or a %s" %(a, b)