擅长:python、mysql、java
<p>您正在迭代的数据是一个文件对象。您可以对它应用所有的<a href="http://docs.python.org/2/library/itertools.html" rel="nofollow">itertools</a>技巧,将数据重新格式化为使用键<code>ID</code>索引的列表字典</p>
<p>所以你从发电机开始。此生成器将删除所有非空行。然后您只需迭代这个生成器,并使用字典理解创建一个字典。使用<a href="http://docs.python.org/2/library/itertools.html#itertools.islice" rel="nofollow">itertools.islice</a>将迭代器推进到一定程度,留下下一项作为键使用。你知道吗</p>
<p><strong>实施</strong></p>
<pre><code>from itertools import imap, islice
with open("data") as fin:
data = (line for line in imap(str.strip, fin) if line)
data = {line: list(islice(data, 0, 4)) for line in data}
</code></pre>
<p><strong>输出</strong></p>
<pre><code>print data
{'ID2': ['Some name', 'Address', 'Salary', 'Gender'], 'ID1': ['Some name', 'Address', 'Salary', 'Gender']}
</code></pre>