我建议仅拆分astring
,使用列表推导进行替换,然后将其重新加入:
print(' '.join(['True' if i in alist else i for i in astring.split()]))
产生:
True lalala lvlvl lblblbl True
对此进行细分:
print(' '.join([
'True' if i in alist else i
for i in astring.split()
]))
-
astring.split()
== ['bla','lalala','lvlvl','lblblbl','asasa']
如果'True' if i in alist else i
在i
中,-
'True'
用i
替换alist
-
['True' if i in alist else i for i in astring.split()]
== ['True','True']
-
' '.join(['True','True']
将列表变成单个字符串,其中' '
加入了列表元素。
,
str.replace通过将旧字符串替换为new来返回字符串的新副本,而您没有保存它,因此,请始终保存新副本并执行下一个replace
操作
返回该字符串的副本,并将所有出现的旧子字符串替换为新字符串
alist = ['bla','blblblbl','asasa','blblblblblb']
astring = 'bla lalala lvlvl lblblbl asasa'
for i in alist:
if i in astring:
astring = astring.replace(i,'True') # True lalala lvlvl lblblbl True
print(astring)
,
您可以使用re.sub
轻松解决此问题
alist = ['bla','blblblblblb']
astring = 'bla lalala lvlvl lblblbl asasa'
print(re.sub("|".join(sorted(alist,key=len,reverse=True)),"True",astring))
,
您可以使用范围函数进行迭代,并使用该索引替换拆分列表中的单词
def replace(string_data,map_list):
splited_string = string_data.split()
for word in range(len(splited_string)):
if splited_string[word] in map_list:
splited_string[word] = 'True'
return " ".join(splited_string)
输出:
'True lalala lvlvl lblblbl True'
,
您可以尝试并尝试。
alist = ['bla','blblblblblb']
astring = 'bla lalala lvlvl lblblbl asasa'
for i in alist:
try:
astring = astring.replace(i,'True')
except:
pass
print(astring)
本文链接:https://www.f2er.com/3127772.html