我有一组有时无效的字符串,我想用更好的字符串替换它们。我一直在玩 functools 和 itertools 并想尝试将它们应用于问题,但我有点卡住了。这是我所拥有的:
s1 = 'how to sing songs'
s2 = 'This is junk'
s3 = "This is gold"
s4 = 'HTML'
s5 = 'html'
s6 = 'i'
mylist = [s1,s2,s3,s4,s5,s6]
replacements = [('html','HTML'),('how to sing songs','singing'),('This is junk', ''),('i','')]
我想要一个函数算法,对于 mylist 中的每个字符串,对于替换中的每个替换,string.replace(replacement[0],replacement[1])。
想到了什么,比如……
map(lambda x,y: x.replace(y[0],y[1]),mylist,replacements)
map(partial(lambda x,y: x.replace(y[0],y[1]),mylist),replacements)
但是第一个需要额外的参数,第二个说列表对象没有属性替换。有没有一种巧妙的实用方法来解决这个问题?