将列表中的字符串替换为另一个列表中的字符串(如果它包含该字符串)(在Python中)

将列表中的字符串替换为另一个列表中的字符串(如果它包含该字符串)(在Python中),python,string,list,replace,Python,String,List,Replace,我有两份清单: list1是我想要的语言标签列表,目前只有2个:list1=['en','es'] list2是音频ID的列表,它可以是任意长度的,例如list2=['audio\u es-419\u 1=384000','audio\u en-US\u 5=256000','audio\u en-US\u 4=384000','audio\u es-419=128000'] 等等 我需要的是在list2中查找list1中的字符串,如果list2字符串包括list1中的字符串,则将其替换为该字符

我有两份清单:

list1
是我想要的语言标签列表,目前只有2个:
list1=['en','es']

list2
是音频ID的列表,它可以是任意长度的,例如
list2=['audio\u es-419\u 1=384000','audio\u en-US\u 5=256000','audio\u en-US\u 4=384000','audio\u es-419=128000']

等等

我需要的是在
list2
中查找
list1
中的字符串,如果
list2
字符串包括
list1
中的字符串,则将其替换为该字符串

因此,对于上面的
list2
示例,所需的输出将是
['es','en','en','es']

我不介意有重复的条目


一段时间以来,我一直在思考这个问题,尝试了for循环的一些变体,其中包含字符串替换,但不幸的是,用我有限的知识无法实现我所需要的


非常感谢您的帮助,并提前感谢

您可能不应该覆盖
列表2
,而是为此目的添加一个新列表。出于测试目的,我添加了一个“坏”值

list1 = ['en', 'es']

list2 = ['audio_es-419_1=384000', 'audio_en-US_5=256000', 'audio_en-US_4=384000', 'audio_es-419=128000', 'blah']

list3 = []

for i in list2:
    for x in list1:
        if x in i:
            list3.append(x)

print(list3)

['es', 'en', 'en', 'es']

“我对此已经有一段时间了,尝试了for循环的一些变体,其中包含字符串替换,但不幸的是,我的知识有限,无法实现我所需要的。”我们只能告诉您这些尝试的错误,如果您向我们展示它们,并向我们展示任何结果。请同时阅读和。请提供预期的see。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这也让我们可以在您的上下文中测试任何建议。我们希望有一个简单的问题示例,包括跟踪内部操作的适当代码。这是对特定问题的好答案。但是,我建议
如果I中的x
将来可能会导致问题,正则表达式匹配(或类似匹配)将有助于更好的比较。@dkamins您可能是对的,因为更复杂的字符串regex将更充分地证明