擅长:python、mysql、java
<pre><code>busdict[bus] = [val].append(i)
</code></pre>
<p><code>list.append</code>是一个就地操作,返回<code>None</code>。因此,您正在清除其中先前存储的列表。你可以这样修</p>
<pre><code>busdict[bus].append(i)
</code></pre>
<p>但是解决这个问题的最佳方法是使用<a href="http://docs.python.org/2/library/stdtypes.html#dict.setdefault" rel="nofollow">^{<cd3>}</a>函数(如果找不到指定的键,它将赋值并返回默认值),如下所示</p>
<pre><code>busdict.setdefault(bus, []).append(i)
</code></pre>
<p>但是解决这个问题的最好方法是使用<a href="http://docs.python.org/2/library/collections.html#collections.defaultdict" rel="nofollow">^{<cd4>}</a>,就像这样</p>
<pre><code>from collections import defaultdict
busdict = defaultdict(list)
...
...
busdict[bus].append(i)
</code></pre>