如果字典值等于数字,如何用字典中的项目打印值?

how to print a value with items in a dictionary if a dict value equals a number?

我有这段代码可以检查某个值是否小于 than/equal 到(等)我的号码限制。它按需要工作并打印出与这些操作员检查相匹配的相应键和值。但我也希望它打印出它们各自属于匹配操作员检查的两个类别之一,作为一个字符串,只要它显示将它们放入哪个类别,任何东西都可以工作。我知道如何对列表执行此操作,并且使用 R 会更好,但不确定 python 中的字典如何实现此操作。

这是我的代码,用于重现我所做的事情--

创建字典:

d = {'Tony':5, 'Mary':7.8, 'Joe':8.9,'Lee':6.8, 'Luke':11.5, 'Sally':5.8,'Billy':15.2, 'Josè':11.1, 'Jesus':18.9,'Frank':10.5}


检查值:

lessthn = {k:v for (k,v) in d.items() if v  < 10.9 }

morethneqlto = {k:v for (k,v) in d.items() if v  >= 10.9 }

结果示例(我现在编造这个来展示结果是什么样的 - 这与我创建的字典值不匹配):

{'Tony': 6,
 'Sally': 5.8,
 'Mary': 7.9,
 'Billy': 9.8,
 'John': 2.8,
 'Joe': 9.5}


{'Luke': 16,
 'Amy': 15.8,
 'Gillan': 17.9,
 'Sandra': 19.8,
 'Jesus': 12.8,
 'Josè': 19.5}

将其放在每个匹配值旁边的期望结果,类似这样的东西或任何可能的东西:

{'Tony': 6 : Good,
 'Sally': 5.8 : Good,
 'Mary': 7.9 : Good,
 'Billy': 9.8 : Good,
 'John': 2.8 : Good,
 'Joe': 9.5 : Good}



{'Luke': 6 : Bad,
 'Amy': 5.8 : Bad,
 'Gillan': 7.9 : Bad,
 'Sandra': 9.8 : Bad,
 'Jesus': 2.8 : Bad,
 'Josè': 9.5 : Bad}

我想知道答案可能是什么,但没有运气,我尝试了这样的事情:

morethaneqlto.append('Bad') 

但是 append 不适用于 dict

和类似的东西,但我知道这是不对的,并且认为可能有更简单的解决方案:

if < 11.1 d.values:
    print ("Good")

任何能使我的输出与所需输出一致的解决方案都很棒

您可以使用 pandas 创建一个 DataFrame,根据相应的值

有条件地标记每个条目
>>> import pandas as pd
>>> import numpy as np
>>> d = {'Tony':5, 'Mary':7.8, 'Joe':8.9,'Lee':6.8, 'Luke':11.5, 'Patient6':5.8,'Patient7':15.2, 'Josè':11.1, 'Jesus':18.9,'Frank':10.5}
>>> df = pd.DataFrame({'Names': d.keys(), 'Value': d.values()})
>>> df['Label'] = np.where(df['Value'] > 10, 'Good', 'Bad')
>>> df
      Names  Value Label
0      Tony    5.0   Bad
1      Mary    7.8   Bad
2       Joe    8.9   Bad
3       Lee    6.8   Bad
4      Luke   11.5  Good
5  Patient6    5.8   Bad
6  Patient7   15.2  Good
7      Josè   11.1  Good
8     Jesus   18.9  Good
9     Frank   10.5  Good

字典中的值必须是单个对象。如果您同时需要数字和指示符,则必须将它们放在一个对象中。例如,

lessthn = {k:(v,"Good") for (k,v) in d.items() if v  < 11.1 }