在Python 2.7中工作时,我有一个带有一些报价数据的嵌套字典,我希望从中生成一个成功构建的报价列表。目前,我是这样做的:
有没有更Python化的方式来做这个?我有一种预感,我们可以用列表推导式来更快地或者更清晰地完成它。当由于数据错误无法构建报价时,函数
非常感谢。
编辑
一个字典结构的示例:
result = []
for nameStr, nameData in dataTbl.iteritems():
for valueDate, record in nameData.iteritems():
quote = histRecordToQuote(securitiesDict = securitiesDict,
nameStr = nameStr,
valueDate = valueDate,
record = record)
if quote:
result.append(quote)
有没有更Python化的方式来做这个?我有一种预感,我们可以用列表推导式来更快地或者更清晰地完成它。当由于数据错误无法构建报价时,函数
histRecordToQuote()
将返回None
。你可以建议不同的签名,我将很高兴为了更清晰/更快的代码进行重写。非常感谢。
编辑
一个字典结构的示例:
{'IBM': {'20140215':2.53, '20140216':2.55},
'MSFT': {'20140213':2.45, '20140216':0.},
'AMZN': {'20140212':0., '20140214':2.59}}
参数securitiesDict
是外部的,它用于构造histRecordToQuote()
内部的Quote
类。
histRecordToQuote()
的输出将对0价格记录返回None
,并从其余记录中构造有效的Quote
。
Quote('IBM', '20140215', 2.53)
Quote('IBM', '20140216', 2.55)
Quote('MSFT', '20140213', 2.45)
None
Quote('AMZN', '20140214', 2.59)
None
我的最终输出需要是有效报价的列表:
[Quote('IBM', '20140215', 2.53),
Quote('IBM', '20140216', 2.55),
Quote('MSFT', '20140213', 2.45),
Quote('AMZN', '20140214', 2.59)]