假设我有一本学龄前儿童词典。关键是名称和表示的值:最喜欢的颜色、年龄和头发颜色。你知道吗
preschool_kids={"Suzie":("purple", 4, "brown"),
"Michael":("blue", 3, "blond"), "Jane":("purple",5, "black")}
因此,我正在测试这些学生最喜欢的颜色是紫色,并希望得到以下输出:
{"Suzie":("purple", 4, "brown"),"Jane":("purple",5, "black")}
为了得到这个结果,我做了以下工作(使用上面的字典):
def search(values, color):
d={}
for key,value in preschool_kids.items():
colors=value[0]
if color in colors:
d= (key, value)
print(d)
print (search(preschool_kids, "purple"))
但我一直在说:
('Suzie', ('purple', 4, 'brown'))
('Jane', ('purple', 5, 'black'))
如何让它用代码中的搜索结果而不是元组形成一个新字典?它似乎给了我想要的东西,但不是我想要的输出。你知道吗
另外,由于我对Python还比较陌生,所以我不想导入东西,因为我对不同的导入库没有太多的经验或充分的理解。你知道吗
问题
d = (key,value)
是将键赋给字典中的值的错误方法。这将创建一个元组(key,value)
,并将其分配给d
,覆盖它以前作为字典的存在。你知道吗最佳解决方案
使用字典理解。这是明智的方法:
这将创建一个只包含所需结果的新字典。你知道吗
简单的解决方案(以及在字典中分配的正确方法)
最简单的方法是:
你很接近!您只需更新正在函数中构建的词典,即可将学生姓名映射到其属性并返回:
相关问题 更多 >
编程相关推荐