如何在不使用 .replace() 方法的情况下替换字符串中的单词,因为我希望该单词仅被删除一次

例如:我有一个 lista = ["john", "jack", "mike"]和一个像这样的字符串s = jackmikejohnjackjack",我想将该字符串中的所有名称附加到像 这样的新列表中b = ["jack", "mike", "john", "jack", "jack"],

因为您可能已经注意到还需要附加重复项,我尝试过类似的操作:


a = ["john", "jack", "mike"]

s = "jackmikejohnjackjack"

b = []

for item in a:

   if item in s:

      b.append(item)          

但这只会返回,在将名称附加到 b 之后b = ['john', 'jack', 'mike']也不能使用,因为它会给出相同的答案s.replace(item, "")


拉风的咖菲猫
浏览 128回答 2
2回答

杨魅力

如果顺序不重要,您可以使用re.findall:import rea = ["john", "jack", "mike"]s = "jackmikejohnjackjack"b = []for item in a:    result = re.findall(item, s)    for subitem in result:        b.append(item)print(b)这会输出:['john', 'jack', 'jack', 'jack', 'mike']

胡子哥哥

如果您可以假设我们总是有出现的名称,那么此代码可以满足您的要求:>> a = ["john", "jack", "mike"]>> s = "jackmikejohnjackjack">> b = []>> while s:       for name in a:           if s.startswith(name):               b.append(name)               s = s[len(name):]               break>> print(b)['jack', 'mike', 'john', 'jack', 'jack']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python