Python 如何基于另一个字符串列表随机替换列表中的字符串

Python 如何基于另一个字符串列表随机替换列表中的字符串,python,python-3.x,list,replace,Python,Python 3.x,List,Replace,我有以下问题,我有一个字符串列表,我想根据另一个列表随机替换某些单词 我的原始列表如下所示: original_list = [['Bananas' 'are' 'boring' 'and' 'too' 'sweet'], ['Why','can', 'we','get','apples','but','no','blueberries'], ['this','is','not','good','for','eat','some','grapes'], ['have','you','ever',

我有以下问题,我有一个字符串列表,我想根据另一个列表随机替换某些单词

我的原始列表如下所示:

original_list = [['Bananas' 'are' 'boring' 'and' 'too' 'sweet'],
['Why','can', 'we','get','apples','but','no','blueberries'],
['this','is','not','good','for','eat','some','grapes'],
['have','you','ever','tried','to','buy','all','the','different','apples']]
这是我想在
原始列表中随机替换的单词列表

orginal_words = ['Bananas','apples','grape']
这是我想随机选择的单词列表,而不是原始单词的

replacement_words = ['popcorn','juice','chocolate','chips','cake','sweets']
我找到了一种针对单个单词的方法,但我不确定如何根据列表提高效率:

from random import shuffle
shuffle(replacement_words)
for el in replacement_words:
    for test_str in original_list:
        test_str = test_str.replace('Bananas', el)
        print("String after random replacement : " + str(test_str))

您可以使用以下方法按索引随机选取替换词:

ind = random.randint(0, len(replacement_words))
而且,它不能保证元素的唯一性。您可以提前生成列表并制作:

for new_word, old_word in zip(original_list, replacement_words_indices):
  # Do replacement here

算法将是线性的,而不是二次的。

这太疯狂了;只需对替换词进行随机洗牌,然后在结果上循环。@tripleee,这是可能的。我并没有说我的答案更好或更有效,只是另一种选择。