我有一个程序,它将股票报价机和部门列表加载到一个名为etfStocks的列表中。它看起来像这样:
etfStocks = [('AAPL', 'Technology'), ('FB', 'Technology'), ('SPG', 'Real Estate'), ...]
然后我有另一个列表,其中我将每个扇区加载到名为sectorList的列表中。它看起来像这样:
sectorList = ('Technology', 'Real Estate', 'Industrials', ...)
我尝试遍历sectorList列表,并将给定扇区的每个报价器加载到它们自己的列表中,然后对其执行分析。下面的脚本在第一次执行时运行良好,但是当循环进入第二个扇区时,它永远不会重建sectorStock列表。我试过在下面的代码和嵌套for循环之间切换,但似乎都不起作用。
有没有人知道为什么它不会在嵌套循环中重复迭代?
sectorStocks = []
for sector in sectorList:
sectorStocks.clear()
sectorStocks = [i[0] for i in etfStocks if i[1] == sector]
print("Computing statistics for: %s" % sector)
这里似乎行得通。
也许你想要一个groupBy
?
from itertools import groupby
from operator import itemgetter
etfStocks = [('AAPL', 'Technology'), ('FB', 'Technology'), ('SPG', 'Real Estate')]
sectorList = ('Technology', 'Real Estate', 'Industrials')
stocks_by_sector = {k:list(v) for k,v in groupby(etfStocks, itemgetter(1))}
for sector, stocks in stocks_by_sector.items():
print(sector, stocks)
https://repl.it/E10r/1