我有一個清單
my_list=['Hello jose','jjjj','jack signal','jjjjjj']
我試過
[i.replace('j','') for i in my_list]
我的輸出:
['hello ose', '', 'ackpot', '']
我的預期輸出:
['Hello jose','','jackpot','']
如果子字串'j'在另一個旁邊重復,如何洗掉它?
uj5u.com熱心網友回復:
您可以使用正則運算式:
import re
my_list=['Hello jose','jjjj','jack signal','jjjjjj']
output = [re.sub(r"(.)\1 ", "", s) for s in my_list]
print(output) # ['Heo jose', '', 'jack signal', '']
uj5u.com熱心網友回復:
您正在尋找的正則運算式如下:
output = [re.sub(r"(.)\1{2,}", "", s) for s in my_list]
它查找并替換"(.)"后跟兩個或多個相同副本的任何字符"\1{2,}"。"\1"是對括號中匹配項的參考。
uj5u.com熱心網友回復:
您可以做的一件事是檢查連續重復,'j'如果沒有找到,將其附加到臨時字串并將其替換為my_list,就像...
my_list=['Hello jose','jjjj','jack signal','jjjjjj']
for i in range(len(my_list)):
temp_str, my_str, flag = "", my_list[i], 0
for j in range(len(my_str)-1):
if (my_str[j] == "j") and (my_str[j] == my_str[j 1]):
continue
else:
temp_str = my_str[j]; flag=1
else:
temp_str = my_str[-1] if flag else ""
my_list[i] = temp_str
print(my_list)
輸出:-
['Hello jose', '', 'jack signal', '']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407622.html
標籤:
