首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的Dicts

Python中的Dicts
EN

Stack Overflow用户
提问于 2015-02-24 17:04:50
回答 4查看 568关注 0票数 5

我有一个多维数据,我需要返回一个特定的值。

代码语言:javascript
复制
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"])

打印的结果是:

代码语言:javascript
复制
[{'Ammonia': '0.229', 'Amine': '0.0007'}]

我的问题是:是否有一种方法只返回"DAP_Local“中”氨“的值?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-24 17:16:48

不管怎样,你为什么要把清单放进你的字典里?你可以在你的主字典里使用dicts。

您也可以在没有列表的情况下使用多维dicts,例如:

代码语言:javascript
复制
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中,您可以变得更短:

代码语言:javascript
复制
ConsomRatio = {
   "DAP_Local": {"Ammonia":"0.229", "Amine":"0.0007"},
   "MAP11_52" : {"Ammonia":"0.138", "Fuel":"0.003"},
}

print(ConsomRatio["DAP_Local"]["Ammonia"])

也可以回答你最近的问题(在你的第二个评论中):

代码语言:javascript
复制
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')))

希望你能帮上忙!

它变得更好了:

代码语言:javascript
复制
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))
票数 2
EN

Stack Overflow用户

发布于 2015-02-24 17:08:21

你可以这样做。将dict附加到list中,因此必须在dict所在的list中选择正确的索引。在这种情况下,列表或索引0中的第一个元素。

代码语言:javascript
复制
ConsomRatio["DAP_Local"][0]["Ammonia"]

顺便说一句,根据你想要达到的目标,你可能想看看多维数据集的不同实现的其他答案。

票数 7
EN

Stack Overflow用户

发布于 2015-02-24 17:17:08

当然,其他的答案是正确的,但是你有没有考虑过用一个“丁字”呢?即:

代码语言:javascript
复制
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.229
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28701878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档