擅长:python、mysql、java
<p>首先,<code>for i in range(len(BTCPair))</code>是一个<a href="https://treyhunner.com/2016/04/how-to-loop-with-indexes-in-python/" rel="nofollow noreferrer">antipattern</a>。您可以将这些<a href="https://treyhunner.com/2016/04/how-to-loop-with-indexes-in-python/#zip" rel="nofollow noreferrer">zipped</a>一起迭代</p>
<p>但实际上我们也不需要这样做!您可以使用<a href="https://realpython.com/list-comprehension-python/#using-set-and-dictionary-comprehensions" rel="nofollow noreferrer">dictionary comprehension</a>一次性创建所有内容,而不是创建两个列表,然后对它们进行迭代以填充词典。另外,检查字符串结尾的更简洁的方法是<a href="https://docs.python.org/3/library/stdtypes.html#str.endswith" rel="nofollow noreferrer">^{<cd2>}</a></p>
<pre><code>def btc_pair():
symbols = client.get_exchange_info()['symbols']
return {
s['symbol']: client.get_avg_price(symbol=s['symbol'])['price']
for s in symbols
if s['symbol'].endswith('BTC')
}
</code></pre>
<p>这可能会运行得快一点,但我怀疑字典创建本身是代码中真正的性能瓶颈</p>