如何在文件中一起使用两个列表?

时间:2014-04-09 10:39:02

标签: regex python-2.7

我必须从文件中读取单词并检查它们是否在我所拥有的列表中,如果它存在,我应该相应地用另一个单词替换它。示例

我的第一份清单:IAS,I.A.S,IPS,WHO ...... 我的第二个名单:印度行政服务,印度行政服务,印度警察局,世界卫生组织......

如果输入文件中有IAS,则应将其作为Indian Police服务写入输出文件。现在我使用简单的if和else语句来做到这一点。但还有其他有效的方法吗?我可以使用两个列表并写入文件...我可以将单词列表及其相应的缩写分别保存在文件中并处理吗?

带有word和abbr列表的文件(abbr文件):

IAS印度管理服务

世界卫生组织世界卫生组织

现在,我想从我的输入文件(infile)读取并检查这个“abbr”文件中是否有单词,如果是,则替换else将单词本身写回文件(outfile)。

1 个答案:

答案 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 ...检查要比列表中的项目快得多。