擅长:python、mysql、java
<p>我认为你的问题是因为你做了<code>if searchtxt in line</code>,而不是对你的<code>pattern</code>中的每个<code>searchtxt</code>做{<cd2>}。我要做的是:</p>
<pre><code>>>> path = 'D:\\temp\\Test.txt'
>>> lines = open(path).readlines()
>>> searchtxt = "Enzymologic: IC50 nM 1", "Enzymologic: Ki nM 1"
>>> from collections import defaultdict
>>> dict_patterns = defaultdict(list)
>>> for i, line in enumerate(lines):
for pattern in searchtxt:
if pattern in line and i+1 < len(lines):
dict_patterns[pattern].append(lines[i+1])
>>> dict_patterns
defaultdict(<type 'list'>, {'Enzymologic: Ki nM 1': ['257000\n', '5000\n'],
'Enzymologic: IC50 nM 1': ['n/a\n', '1000']})
</code></pre>
<p>dict的使用允许按模式对结果进行分组(<code>defaultdict</code>是一种不必强制初始化对象的方便方法)。在</p>