我有一些随机字符串列表:
list_test = ["adam", "adam", "lori", "conrad", "lori", "adam"]
然后我还有两个列表,一个我想测试匹配的匹配,另一个决定用什么替换项目。
sReplace = ["adam", "lori"]
sReplaceWith = ["carol", "robert"]
我想要做的是搜索list_test,如果该列表中的任何项目匹配sReplace中的任何项目,如果它确实将其替换为来自匹配索引号ex的sReplaceWith中的项目。
final_list = ["carol", "carol", "robert", "conrad", "robert", "carol"]
知道如何做到这一点吗?
答案 0 :(得分:4)
我创建一个字典,其中Replace为键,ReplaceWith为值。
replacements = dict(zip(sReplace, sReplaceWith))
>>> replacements
{'adam': 'carol', 'lori': 'robert'}
然后在列表理解中,您可以使用get
,它将从字典中查找替换,如果不存在则使用原始单词。
final_list = [replacements.get(i,i) for i in list_test]
>>> final_list
['carol', 'carol', 'robert', 'conrad', 'robert', 'carol']
答案 1 :(得分:2)
list_test = ["adam", "adam", "lori", "conrad", "lori", "adam"]
sReplace = ["adam", "lori"]
sReplaceWith = ["carol", "robert"]
print([sReplaceWith[sReplace.index(x)] if x in sReplace else x for x in list_test ])
['carol', 'carol', 'robert', 'conrad', 'robert', 'carol']
如果sReplaceWith[sReplace.index(x)]
位于要替换的列表中,则使用x
添加相应索引处的元素,否则只需将x
添加到列表中
答案 2 :(得分:0)
完成没有词典:
list_test = ["adam", "adam", "lori", "conrad", "lori", "adam"]
sReplace = ["adam", "lori"]
sReplaceWith = ["carol", "robert"]
for list_index in range(0, len(list_test)):
list_item = list_test[list_index]
if list_item in sReplace:
replace_with = sReplaceWith[sReplace.index(list_item)]
list_test[list_index] = replace_with
print list_test
输出:
['卡罗尔'卡罗尔'罗伯特','康拉德'罗伯特',& #39;卡罗尔']