gpt4 book ai didi

python - 用于在 python 中查找替换列表的 itertools 或 functools

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:06 25 4
gpt4 key购买 nike

我有一组有时无效的字符串,我想用特别好的字符串替换它们。我一直在玩 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)

但是第一个想要额外的参数,第二个说列表对象没有属性替换。有没有巧妙的功能性方法来解决这个问题?

最佳答案

>>> [reduce(lambda x, y: x.replace(y[0], y[1]), replacements, s) for s in mylist]
['singing', '', 'This is gold', 'HTML', 'HTML']

map() 代替列表理解的等效代码:

map(partial(reduce, lambda x, y: x.replace(y[0], y[1]), replacements), mylist)

关于python - 用于在 python 中查找替换列表的 itertools 或 functools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16047455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com