擅长:python、mysql、java
<p>接受的答案是正确的,只是它将整个文件读入内存(如果您有一个大文件,则可能不需要),并且它将覆盖重复的密钥。</p>
<p>使用<a href="http://docs.python.org/library/collections.html#collections.defaultdict" rel="nofollow">defaultdict</a>的另一种方法(可从Python 2.4获得)可以解决以下问题:</p>
<pre><code>from collections import defaultdict
d = defaultdict(list)
with open('/tmp/spam.txt') as f:
for line in f:
parts = line.strip().split()
d[parts[0]] += parts[1:]
</code></pre>
<p>输入:</p>
<pre>
A B C D
B E F
C A B D
D
C H I J
</pre>
<p>结果:</p>
<pre><code>>>> d = defaultdict(list)
>>> with open('/tmp/spam.txt') as f:
... for line in f:
... parts = line.strip().split()
... d[parts[0]] += parts[1:]
...
>>> d['C']
['A', 'B', 'D', 'H', 'I', 'J']
</code></pre>