擅长:python、mysql、java
<p>使用<code>dict</code>将相关值与每个级别关联起来是有意义的:</p>
<pre><code>levels_dict = {4 :(sale4, cost1, cost2),
5 :(sale5, cost2, cost3)}
</code></pre>
<p>这样<code>levels_dict[level]</code>将为您提供销售额和两种计算成本:</p>
^{pr2}$
<p>如果<code>level in range(15)</code>始终为真,那么使用列表将不需要密钥,您可以使用列表:</p>
<pre><code>levels_data = [None, #0
None, #1
None, #2
None, #3
(18280, 224, 335),
(19180, 335, 456)]
</code></pre>
<p>虽然如果级别从4开始,那么这需要很多占位符。在</p>
<p>最好使用<a href="https://docs.python.org/2/library/collections.html#collections.namedtuple" rel="nofollow">^{<cd4>}</a>来确保始终按正确的顺序放置值:</p>
<pre><code>import collections
level = collections.namedtuple("level",["sale","xcost","ycost"])
levels_dict = {4 :level(sale4, cost1, cost2),
5 :level(sale5, cost2, cost3)}
</code></pre>
<p>这仍然与上述方法相同,但也允许您使用名称而不是顺序:</p>
<pre><code>def sales(level, foo, bar):
data = levels_dict[level]
x = data.xcost + data.sale * foo
y = data.ycost + data.sale * bar
...
</code></pre>