如何遍历字典并从两个不同的字典元素计算速率?



我有一本类似的字典:

table_wood = {'Red': {'Abbreviation': 'R',
'Instances': 269601,
'Code': '8924',
'Discovered': '1876-08-01',
'Largest usage': 'Douglas',
'Indigo': {'Abbreviation': 'IN',
'Instances': 216443,
'Code': '2343',
'Discovered': '1890-07-03',
'Largest usage': 'Freida'}}

我需要遍历table_wood字典并计算 table_wood 中每个字典的实例/代码。完成此操作后,我需要报告哪个实例数最多,哪个实例数最少。

我尝试使用 for 循环将相关值附加到空列表中,然后使用嵌套的 for 循环来比较这些列表值,以查看哪个原始实例最大和最低。 它涉及大量的空列表,我知道如果我能将它们作为新的键/值对存储在空字典中,有更好的方法。

instanceCodeRate = []
colorInstances = []
highestInstance = []
lowestInstance = []
for color in table_wood:
colorRate.append(color+ ": " +str(round((table_wood[color]["Instances"])/(table_wood[color]["Code"]),2))+ " instances per code.n")
#print(instanceCodeRate)
colorInstances.append(table_wood[color]["Instances"])
#print(colorInstances)
for instance in colorInstances:
if ((table_wood[color]["Instances"]) == min(colorInstances)):
lowestInstance.append(color)
elif ((table_wood[color]["Instances"]) == max(colorInstances)):
highestInstance.append(color)
#print(instanceCodeRate)
#print(highestInstance)
#print(lowestInstance)

当我打印(实例CodeRate(时,它将其作为列表元素执行,这使我尝试打印的""空格字符无效,以便每个条目都有自己的行。 我的 elif 通过只存储最大的元素来工作,但由于某种原因,存储最小值的 if 语句存储多个列表元素,其中应该只有一个。

Python的max函数接受可选的key参数

colors = list(table_wood.keys())
attrs = list(table_wood.values())
max_value = max(attrs, key=lambda: x: x['Instances']/int(x['Code']))

这将打印出来:

{'Abbreviation': 'IN',
'Instances': 216443,
'Code': '2343',
'Discovered': '1890-07-03',
'Largest usage': 'Freida'}

这同样可以用min

相关内容

  • 没有找到相关文章

最新更新