Python String 的replace()与List的remove()

最近在写词汇检索的练习过程中,发现了Python 中字符串类型, 调用replace()函数,并不能消除异型词带来的干扰。例如,

>>>a="and,stand,android,anrdoi"
>>>a.replace("and","newword")
'newword,steword,newordroid,anrdoi'
>>>print(a)
and,stand,android,anrdoi

可以看出,带有词根“and”的词均被替换。即在字符串类型中,replace函数是逐个字符进行比较,只要连续匹配,则生效。(可以理解为以单个字符为单位)
string.replace() 该函数会拷贝一个新的字符数串序列,原有的序列并没有被改变。

如果使用列表类型的remove函数,则可以排除这个干扰。

>>>a="and,stand,android,anrdoi"
#利用split函数将字符串a列表化
>>>b=a.split(",")
>>>b.remove("and")
>>>print(b)
['stand','android','anrdoi']

可以看出,列表类型调用remove函数并不受词根干扰。这是因为列表的检索是以每一项为单位,只有该项连续完全匹配,才会生效。
List.remove() 该函数会直接改变原有的列表。

猜你喜欢

转载自blog.csdn.net/Murphy_CoolCoder/article/details/75042379