【问题标题】:python Dictionary for printing inventory if value is less than input如果值小于输入,则用于打印库存的python字典
【发布时间】:2019-11-10 20:03:26
【问题描述】:

一家电脑商店使用 Python 字典管理其笔记本电脑库存。每个字典条目都以特定笔记本电脑型号的字符串名称作为键,并将其在库存中的整数数量作为其对应的值。

一个例子:

d = {"MS Surface":47, "HP Laptop Probook":144, "MacBook Pro":23, "Dell Laptop XPS": 10, "Asus Chromebook": 20}

定义一个函数low_inventory(laptop_dict, threshold),它返回笔记本电脑库存laptop_dict中数量小于(

示例:调用你的函数为 total_items(d,47) 应该返回:

['MacBook Pro', 'Dell Laptop XPS', 'Asus Chromebook']
def low_inventory(laptop_dict, threshold):
    for akey in laptop_dict.keys():
        if laptop_dict[akey] < threshold:
                ----

您能否建议如何执行此操作。我是 python 新手,正在努力解决输出问题。

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以使用d.items() 来遍历给定键和值的字典。试试这样的:

    def low_inventory(laptop_dict, threshold):
        low = []
        for key, value in laptop_dict.items():
            if value < threshold:
                low.append(key)
        return low
    

    【讨论】:

      【解决方案2】:

      您需要返回一个列表,因此您可以从定义一个开始。类似的东西:

      low_inv = []
      

      然后在您的循环append() 中,如果库存低,则该列表的键(在这种情况下是计算机的名称)。然后返回:

      d = {"MS Surface":47, "HP Laptop Probook":144, "MacBook Pro":23, "Dell Laptop XPS": 10, "Asus Chromebook": 20}
      
      def total_items(laptop_dict, threshold):
          low_inv = []                           # new list
          for akey in laptop_dict.keys():
              if laptop_dict[akey] < threshold:
                  low_inv.append(akey)           # append to it
          return low_inv                         # return it
      
      total_items(d,47)
      
      #['MacBook Pro', 'Dell Laptop XPS', 'Asus Chromebook']
      

      这也可以作为list comprehension 完成,它可以在没有显式循环的情况下一次性创建一个列表:

      def total_items(laptop_dict, threshold):
          return [akey for akey, inv in laptop_dict.items() if inv < threshold]
      

      【讨论】:

        【解决方案3】:

        你可以试试过滤

        value = filter(lambda x: dict[x] < 3, keys)
        

        和其他迭代函数

        http://book.pythontips.com/en/latest/map_filter.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-08
          • 2015-06-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-05
          相关资源
          最近更新 更多