我有一个包含此文件的文件:
((S000383212:0.0,JC0:0.244562):0.142727,(S002923086:0.0,(JC1:0.0,JC2:0.0):0.19717200000000001):0.222151,((S000594619:0.0,JC3:0.21869):0.13418400000000003,(S000964423:0.122312,JC4:0.084707):0.18147100000000002):0.011521999999999977);
我有两个词典包含:
org = {'JC4': 'a','JC0': 'b','JC1': 'c','JC2': 'c','JC3': 'd'}
RDP = {'S000383212': 'hello', 'S002923086': 'this', 'S000594619': 'is'}
我每次说出其中一个词典中的一个词并将其转换为替代词时,我怎么能找到?
即。如果它遇到'JC0'那么它会把它翻译成'b'
答案 0 :(得分:5)
for key in org.keys() + RDP.keys():
text = text.replace(key, org.get(key, None) or RDP.get(key, None))
当然,正如TryPyPy所说,如果你只是合并了这些词汇,它会变得更加简单:
org.update(RDP)
for item in org.items():
text = text.replace(*item)
答案 1 :(得分:2)
如果性能不是很重要,您可以使用以下代码:
with open('your_file_name.txt') as f:
text = f.read()
for key, value in org.items() + RDP.items():
text = text.replace(key, value)
此代码的时间复杂度为O(n * k)
,其中n
是text
的长度,k
是两个词典中的条目数。如果这种复杂性不适合您的任务,Aho-Corasick algorithm可以帮助您。
答案 2 :(得分:1)
您应该使用replace
字符串方法。