擅长:python、mysql、java
<p>视情况而定</p>
<p>你不会经常这样做,你可以反复浏览字典列表,直到找到“正确的”一个:</p>
<pre><code>search_for_order_id = 'D00001'
for d in dataList:
if d['orderID'] == search_for_order_id:
print(d['partID'], d['quantity'])
break # assuming orderID is unique
</code></pre>
<p>输出</p>
<pre><code>P00001 2
</code></pre>
<p>因为这个解是O(n),如果你要做这个搜索很多次,它就会加起来</p>
<p>在这种情况下,最好将数据转换为字典字典,其中<code>orderID</code>是外键(同样,假设<code>orderID</code>是唯一的):</p>
<pre><code> better = {d['orderID']: d for d in dataList}
</code></pre>
<p>这也是O(n),但你只付一次。任何后续查找都是O(1)字典查找:</p>
<pre><code>search_for_order_id = 'D00001'
print(better[search_for_order_id]['partID'], better[search_for_order_id]['quantity'])
</code></pre>
<p>还有输出</p>
<pre><code>P00001 2
</code></pre>