是python的新手,试图理解集合和字典,
我有一个字典(abc),我的目标是显示字典各部分的比例(棒[vaccum / broom],石头[vaccum / broom],Bones [vaccum / broom]):
abc = {"Sticks" :{"brooms":8061, "vaccums":2721},
"Stones":{"brooms":8399, "vaccums":2873},
"Bones":{"brooms":7706, "vaccums":2654}}
我的输入:
print(abc["Sticks(vaccums)"]]/abc["Sticks(brooms)"]])
导致错误: TypeError:“ builtin_function_or_method”对象不可下标
所需的输出:
Stones 0.342
Bones 0.344
Sticks 0.338
我的代码有什么问题?通过从字典获取输入进行计算的语法是什么
答案 0 :(得分:0)
您可以这样做(但不会产生您提供的号码):
abc = {"Sticks" :{"brooms":8061, "vaccums":2721},
"Stones":{"brooms":8399, "vaccums":2873},
"Bones":{"brooms":7706, "vaccums":2654}}
averages = { k: sum(v.values())/len(v) for k,v in abc.items() }
# {'Sticks': 5391.0, 'Stones': 5636.0, 'Bones': 5180.0}
vac2broom = { k: v["vaccums"]/v["brooms"] for k,v in abc.items() }
# {'Sticks': 0.33755117231112763, 'Stones': 0.3420645314918443, 'Bones': 0.3444069556189982}
或特定项目:
avg = sum(abc["Sticks"].values())/len(abc["Sticks"])
ratio = abc["Sticks"]["vaccums"] / abc["Sticks"]["brooms"]
答案 1 :(得分:0)
似乎您要访问字典的值。 关于您的问题,“露丝”看起来有些随意。
abc是一个嵌套字典。 就像这样:abc ['Key'],并且密钥的值是字典{“ brooms”:8061,“ vaccums”:2721}。
因此您可以在abc ['Sticks']上使用values()函数,因为它将以字典作为其value,而字典又具有您想要的值。
sum(abc['Sticks'].values()) / len(abc['Sticks'].values())
sum(abc['Stones'].values()) / len(abc['Stones'].values())
sum(abc['Bones'].values()) / len(abc['Bones'].values())
您应该遍历那些具有循环或列表理解能力的人。
已编辑:
似乎就是您想要的,只是访问嵌套字典的值。
abc['Bones']['vaccums'] / abc['Bones']['brooms']
再次,如果要处理大型词典,请将其放在列表理解/循环中。
答案 2 :(得分:-2)
使用
遍历字典for part in myDictionary.items():
并对每个结果进行数学计算。