擅长:python、mysql、java
<p>这是我的Python 2版本:</p>
<pre><code># Construct list of keywords
# ** EDIT** this might be better as a set
# A list will use less memory, but a set is much faster lookup
keywords = [kw.rstrip() for kw in open('file1')]
# Construct dictionary of keywords
kvdict = {}
with open('file2') as f2:
for line in f2:
kw = line.split()[0]
if kw in keywords:
kvdict[kw] = line.rstrip()
with open('file3') as f3:
for line in f3:
kw = line.split()[1]
if kw in kvdict:
newline = line.replace(kw, kvdict[kw])
print newline, # or maybe write it to a file?
</code></pre>
<p>但这确实取决于可管理的关键字数量。它还取决于file3中的每一行至少有两个字段。你知道吗</p>
<p>对于python3,将最后的<code>print</code>语句更改为<code>print(newline, end='')</code>。你知道吗</p>
<p>编辑:为避免字典的内存开销,请替换</p>
<pre><code>kvdict = {}
</code></pre>
<p>使用:</p>
<pre><code>import shelve
kvdict = shelve.open('keywords')
</code></pre>
<p>在节目快结束的时候:</p>
<pre><code>kvdict.close()
</code></pre>
<p>您可能还希望删除末尾的<code>keywords</code>文件。你知道吗</p>