一家计算机商店使用Python词典管理其笔记本电脑库存。每个字典条目都将特定笔记本电脑型号的字符串名称作为键,并将其库存中的整数作为其对应值。
一个例子:
d = {"MS Surface":47, "HP Laptop Probook":144, "MacBook Pro":23, "Dell Laptop XPS": 10, "Asus Chromebook": 20}
定义一个函数low_inventory(laptop_dict,threshold),该函数返回数量小于(<)int阈值的笔记本电脑清单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的新手,正在为输出而苦苦挣扎。
答案 0 :(得分: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]
答案 1 :(得分:2)
您可以使用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 :(得分:1)
您可以尝试过滤
value = filter(lambda x: dict[x] < 3, keys)
和其他迭代功能