我有一个程序,将一系列股票行情和行业加载到名为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)
答案 0 :(得分:1)
似乎在这里工作。
也许你想要一个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)