我不应该这样做,但我觉得这个练习很有趣。所以我们开始:
lines = [i.strip() for i in l if i.strip()]
abbrev = dict(zip(lines[0::2], lines[1::2]))
然后abbrev
是一个字典/映射,您可以在其中通过查找全名作为键来获取缩写词。
如果你想理解这个陈述,我建议你在交互式 python shell 中分别尝试每个部分。
为懒惰的 StackOverflow 读者编辑
这是交互式会话示例,还有一些其他建议:
>>> infile = open("abbreviations.txt", "r")
>>> lines = [l.strip() for l in infile]
>>> lines
['BURGER KING', '', 'BRG', '', 'MCDONALDS', '', 'MCDNLDS', '', 'WENDYS', '', 'WNDY']
>>> lines[0::4]
['BURGER KING', 'MCDONALDS', 'WENDYS']
>>> lines[2::4]
['BRG', 'MCDNLDS', 'WNDY']
>>> zip(lines[0::4], lines[2::4])
[('BURGER KING', 'BRG'), ('MCDONALDS', 'MCDNLDS'), ('WENDYS', 'WNDY')]
>>> abbrev = dict(zip(lines[0::4], lines[2::4]))
>>> abbrev
{'MCDONALDS': 'MCDNLDS', 'WENDYS': 'WNDY', 'BURGER KING': 'BRG'}
>>> abbrev["WENDYS"]
'WNDY'