好的,让我们一步一步来。首先,我会将文件读B
入一个非常适合快速查找的结构,因为我们将经常这样做:
chars = {}
with open("B") as lookupfile:
for number,line in enumerate(lookupfile):
chars[line.strip()] = number
现在我们有一个字典chars
,其中包含作为键的字母和作为值的行号:
>>> chars
{'t': 1, 'a': 4, 'i': 3, 'h': 0, 's': 2}
现在我们可以遍历第一个文件。文件的标准 Python 迭代器每次迭代消耗一行 ,而不是一个字符,因此最好将整个文件读入一个字符串,然后对其进行迭代(因为对于字符串,迭代是逐个字符的):
with open("A") as textfile:
text = textfile.read()
现在我们遍历字符串并打印匹配值:
for char in text:
if char in chars:
print("Character {0} found in row {1}".format(char, chars[char]))
如果您不喜欢两次访问字典,也可以使用
for char in text:
found = chars.get(char): # returns None if char isn't a key in chars
if found:
print("Character {0} found in row {1}".format(char, found))
或者,使用异常:
for char in text:
try:
print("Character {0} found in row {1}".format(char, chars[char]))
except KeyError:
pass