我必须从文件中读取单词并检查它们是否在我所拥有的列表中,如果它存在,我应该相应地用另一个单词替换它。示例
我的第一份清单:IAS,I.A.S,IPS,WHO ...... 我的第二个名单:印度行政服务,印度行政服务,印度警察局,世界卫生组织......
如果输入文件中有IAS,则应将其作为Indian Police服务写入输出文件。现在我使用简单的if和else语句来做到这一点。但还有其他有效的方法吗?我可以使用两个列表并写入文件...我可以将单词列表及其相应的缩写分别保存在文件中并处理吗?
带有word和abbr列表的文件(abbr文件):
IAS印度管理服务
世界卫生组织世界卫生组织
现在,我想从我的输入文件(infile)读取并检查这个“abbr”文件中是否有单词,如果是,则替换else将单词本身写回文件(outfile)。
答案 0 :(得分:1)
最简单的方法是使用zip
创建一个将两者映射到一起的字典:
>>> acronyms = ["IAS", "I.A.S", "IPS", "WHO"]
>>> expansions = ["Indian Administrative services", "Indian Administrative services",
"Indian Police Service", "World Health Organisation"]
>>> map_ = dict(zip(acronyms, expansions))
>>> map_
{'I.A.S': 'Indian Administrative services', 'IAS': 'Indian Administrative services',
'WHO': 'World Health Organisation', 'IPS': 'Indian Police Service'}
>>> map_["IAS"]
'Indian Administrative services'
然后,您可以直接从此词典中轻松替换首字母缩略词,例如作为一个非常简单的例子:
for word in sentence:
if word in map_:
print map_[word]
else:
print word
对于字典键,word in ...
检查要比列表中的项目快得多。