擅长:python、mysql、java
<p>如果确实希望避免单独声明一组列表,则始终可以使用<code>defaultdict</code>作为空列表的工厂:</p>
<pre><code>from collections import defaultdict
all_my_lists = defaultdict(list)
</code></pre>
<p>现在你已经拥有了所有你想要的空列表。您可以按名称访问它们,并对空列表执行任何操作:</p>
<pre><code>all_my_lists['Amount'].append(amount)
</code></pre>
<p>一旦创建了列表,它就会持续存在<code>defaultdict</code>只是在您第一次使用任何给定的密钥时为您创建一个空列表</p>
<p>这种方法的问题是,如果你在其中一个键上有一个输入错误,很容易漏掉,并且会产生不明显的错误。命名变量更难搞乱,因为如果键入一个,可能会导致明显的运行时错误(如果使用typechecker,甚至在运行程序之前都会出错)</p>
<p>但是,如果在同一范围内有大量列表,那么<em>可能</em>意味着没有以最佳方式对数据进行建模。也许其中一些数据应该在列表列表、字典或管理相关数据块的对象类中。不幸的是,在不了解应用程序其余部分的情况下,就如何改进数据模型给出建议是不可能的</p>