首页 > 解决方案 > 如何根据另一个字符串列表随机替换列表中的字符串

问题描述

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

我的原始列表如下所示:

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']]

这是我想随机替换的单词列表original_list

orginal_words = ['Bananas','apples','grape']

这是我想随机选择的单词列表original_words

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))

标签: pythonpython-3.xlistreplace

解决方案


您可以按索引随机选择replacement_words列表,使用:

ind = random.randint(0, len(replacement_words))

此外,它不保证元素的唯一性。您可以提前生成列表并制作:

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

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


推荐阅读