擅长:python、mysql、java
<p>我使用的是示例数据,因为您没有给出任何自己的示例。如果使用一个字典,其中键是某个股票,值是某种标志,则可以执行以下操作(<em>O(n)speed complexity</em>):</p>
<pre><code>B = {1: True, 4: True} # Example flags. True being a good stock in this example.
releases = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Example stocks.
for stock_id in releases:
if B.get(stock_id):
# Do Something
</code></pre>
<p>另一方面,在<code>B</code>内部的<code>releases</code>上循环:</p>
<pre><code>B = [(2, True), (4, True)]
releases = [1,2,3,4,5,6,7,8,9,10]
for stock in releases:
for flag in B:
if stock == flag[0]:
# Do Something, you've found a good stock.
</code></pre>
<p>更好的方法是,使用一些面向对象的设计并创建一个stock对象(下面的示例)。你知道吗</p>
<pre><code>class Stock(object):
def __init__(self, id, name, price, is_good):
self.id = id
self.name = name
self.price = price
self.is_good = is_good
</code></pre>
<p>这样,您就不需要并行化的数据容器来比较值;确定好的库存的数据完全封装在<code>Stock</code>对象本身中。你知道吗</p>
<p>现在我们可以看到一个潜在的循环看起来有多干净和高效(<em>不再索引或访问其他容器,只需要一个简单的成员访问</em>)。你知道吗</p>
<pre><code>for stock in stocks:
if stock.is_good:
# enter code here
</code></pre>