때때로 나는 더 좋은 문자열로 대체하고 싶다고 생각하는 문자열이 있습니다. functools 및 itertools로 놀았으며 문제에이 문제를 적용 해보고 싶지만 조금 붙어 있습니다. 여기에 내가 가진 무엇 :itertools 또는 functools에 대한 python의 찾기 - 바꾸기 목록
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 위해 (교체 [0], 교체 [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)
것이었다 그러나 첫 번째는 여분의 인수를 원하고, 두 번째는 목록 개체가 어떤 속성이 대체가 없습니다 말했다. 이것을 해결할 수있는 매끄러운 기능적 방법이 있습니까? 대신에 지능형리스트의 map()
와
덕분에, 그게 내가 바라던 정확히입니다. 그러나 필자는 교체 목록에 'e'와 같은 짧은 단어가 있으면 단어 내에서 바뀝니다. 전체 단어 만 바꾸려면 어떻게 수정해야합니까? regexp로 바뀌 었습니까? – Mittenchops
그래, 아마 정규식으로 할 필요가있을 것이다. –
멋지다, 나는 이것이 효과가 있다고 생각한다.'map (partial, reduce, lambda x, y : re (r '\ b % s \ b'% y [0], y [1], x) mylist)' – Mittenchops