【问题标题】:How can I print the names of students with scores larger than 50 from a dictionary?如何从字典中打印分数大于 50 的学生的姓名?
【发布时间】:2021-08-25 15:25:27
【问题描述】:
objects = {
"ALI_ELDIYAB": "80.80",
"BILAL_HASSAN": "78",
"DANIA_RAHMANI": "71.20",
"DANIEL_AIGBE": "78",
"HAMD_ALFARES": "72",
"KHALED_AL_SHAIBANI": "74",
"LINA_ISSA": "70",
"LUMA_ABDELAZIZ": "78",
"MARIAM_BASHER": "44",
"MOHAMMED_BINDAGHER": "74.80",
"NADAY_ALHAMMALI": "77.60",
"NISRIIN_ABDI": "67.60",
"OMAR_HAFEZ": "66.80",
"OMAR_SLEIMAN": "83.20",
"OMAR_MOUSTAFA": "77.60",
"RAHAF_IBRAHIM": "68.80",
"RASIL_ALSAKKA": "82",
"SETYA_GHAHREMANI": "82",
"SHARMAAKE_HANDBO": "59.20",
"YAHYA_ABDELBAGI": "64",
"YOUSIF_KASHWAN": "76.40",}

我试过了,但是没用

for i in objects:
    if objects.values < '70':
        print(i)  

【问题讨论】:

  • 嗯......'6000' &lt; '70' 是真的......你在比较字符串 - 而不是数字

标签: python python-3.x python-2.7 loops dictionary


【解决方案1】:

您遇到的一个问题是字典中的所有值都是字符串。请参阅下面的示例,了解您要查找的内容:

objects = {
   "ALI_ELDIYAB":"80.80",
   "BILAL_HASSAN":"78",
   "DANIA_RAHMANI":"71.20",
   "DANIEL_AIGBE":"78",
   "HAMD_ALFARES":"72",
   "KHALED_AL_SHAIBANI":"74",
   "LINA_ISSA":"70",
   "LUMA_ABDELAZIZ":"78",
   "MARIAM_BASHER":"44",
   "MOHAMMED_BINDAGHER":"74.80",
   "NADAY_ALHAMMALI":"77.60",
   "NISRIIN_ABDI":"67.60",
   "OMAR_HAFEZ":"66.80",
   "OMAR_SLEIMAN":"83.20",
   "OMAR_MOUSTAFA":"77.60",
   "RAHAF_IBRAHIM":"68.80",
   "RASIL_ALSAKKA":"82",
   "SETYA_GHAHREMANI":"82",
   "SHARMAAKE_HANDBO":"59.20",
   "YAHYA_ABDELBAGI":"64",
   "YOUSIF_KASHWAN":"76.40"
}

for i, ii in objects.items():
    if float(ii) < 70:
        print(i)

这样做是对字典中的每个键和值,它会检查值(在“浮点”类型中)是否低于 70,然后打印。

【讨论】:

    【解决方案2】:

    你也可以试试:

    for i in object.keys():
        if float(object[i]) < 70:
            print("{} has a score of {}".format(i, object[i]))
    

    这会将分数转换为数字(特别是浮点数,因为那里有非整数),然后您可以检查每个分数是否满足您的条件。

    【讨论】:

      【解决方案3】:

      我认为这应该可以解决问题:

      for name, value in objects.items():
      
          score = float(value)
      
          if score > 50.0:
              print("{}'s score is pretty good".format(name))
      

      首先想到的是,通过使用字典的items() 方法,您可以遍历所有条目的键和值。

      其次,您必须将分数转换为可比较的类型,如整数或浮点数(在这种情况下,浮点数似乎更适合)进行比较。

      一些参考:https://docs.python.org/3/tutorial/datastructures.html#looping-techniques

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-03
        • 2014-10-08
        相关资源
        最近更新 更多