亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不使用 .replace() 方法的情況下替換字符串中的單詞,因為我希望該單詞僅被刪除一次

如何在不使用 .replace() 方法的情況下替換字符串中的單詞,因為我希望該單詞僅被刪除一次

拉風的咖菲貓 2023-06-27 13:33:31
例如:我有一個 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, "")
查看完整描述

2 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

如果順序不重要,您可以使用re.findall:


import re


a = ["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']


查看完整回答
反對 回復 2023-06-27
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

如果您可以假設我們總是有出現的名稱,那么此代碼可以滿足您的要求:


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


查看完整回答
反對 回復 2023-06-27
  • 2 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號