我有一个多维数据,我需要返回一个特定的值。
ConsomRatio={"DAP_Local":[],"MAP11_52":[]}
ConsomRatio["DAP_Local"].append({"Ammonia":"0.229", "Amine":"0.0007"})
ConsomRatio["MAP11_52"].append({"Ammonia":"0.138", "Fuel":"0.003"})
print(ConsomRatio["DAP_Local"])打印的结果是:
[{'Ammonia': '0.229', 'Amine': '0.0007'}]我的问题是:是否有一种方法只返回"DAP_Local“中”氨“的值?
谢谢!
发布于 2015-02-24 17:16:48
不管怎样,你为什么要把清单放进你的字典里?你可以在你的主字典里使用dicts。
您也可以在没有列表的情况下使用多维dicts,例如:
ConsomRatio = {}
ConsomRation["DAP_Local"] = {"Ammonia":"0.229", "Amine":"0.0007"}
ConsomRatio["MAP11_52"] = {"Ammonia":"0.138", "Fuel":"0.003"}
print(ConsomRatio["DAP_Local"]["Ammonia"])将给出预期的结果,而不需要额外的努力与列表。
在Python中,您可以变得更短:
ConsomRatio = {
"DAP_Local": {"Ammonia":"0.229", "Amine":"0.0007"},
"MAP11_52" : {"Ammonia":"0.138", "Fuel":"0.003"},
}
print(ConsomRatio["DAP_Local"]["Ammonia"])也可以回答你最近的问题(在你的第二个评论中):
to_produce = 'DAP_Local'
ingredience = 'Ammonia'
print('To produce {to_produce} we need {amount} of {ingredience}'.format(
to_produce=to_produce, ingredience=ingredience,
amount=ConsomRatio[to_produce].get(ingredience, '0.0')))希望你能帮上忙!
它变得更好了:
for product, ingred_list in ConsomRatio.items():
for iname, ivalue in ingred_list.items():
print('To produce {to_produce} we need {amount} of {ingredience}'
.format(to_produce=product, ingredience=iname,
amount=ivalue))发布于 2015-02-24 17:08:21
你可以这样做。将dict附加到list中,因此必须在dict所在的list中选择正确的索引。在这种情况下,列表或索引0中的第一个元素。
ConsomRatio["DAP_Local"][0]["Ammonia"]顺便说一句,根据你想要达到的目标,你可能想看看多维数据集的不同实现的其他答案。
发布于 2015-02-24 17:17:08
当然,其他的答案是正确的,但是你有没有考虑过用一个“丁字”呢?即:
ConsomRatio={"DAP_Local":{},"MAP11_52":{}}
ConsomRatio["DAP_Local"].update({"Ammonia":"0.229", "Amine":"0.0007"})
ConsomRatio["MAP11_52"].update({"Ammonia":"0.138", "Fuel":"0.003"})
print ConsomRatio["DAP_Local"]["Ammonia"]
0.229https://stackoverflow.com/questions/28701878
复制相似问题