Python如何封装函数传入key获取指定字典对应键的value值
正确实现方案
基础版(直接复用现有全局cosmetics字典)
def care(key): # 若cosmetics字典已定义在函数外,可删除下一行定义代码 cosmetics = {"Hair": ["Shampoo", "Conditioner", "Repair"], "Skin": ["Cream", "Lotion", "Wipes"], "MakeUp": ["Lipstick", "Foundation", "Liner"]} return cosmetics.get(key)
调用方式:
# 传入指定key即可返回对应值 print(care("Skin")) # 输出结果:['Cream', 'Lotion', 'Wipes']
通用版(支持传入任意字典查询)
def care(target_dict, key): return target_dict.get(key)
调用方式:
cosmetics = {"Hair": ["Shampoo", "Conditioner", "Repair"], "Skin": ["Cream", "Lotion", "Wipes"], "MakeUp": ["Lipstick", "Foundation", "Liner"]} print(care(cosmetics, "Hair")) # 输出结果:['Shampoo', 'Conditioner', 'Repair']
原有代码错误原因说明
- 版本1:参数定义错误,调用时传入的字符串"Skin"被识别为函数内的cosmetics变量,字符串不存在
keys()方法会报错,且内部逻辑为遍历整个字典,必然输出所有值 - 版本2:参数要求传入键、值两个参数,且用列表推导式遍历了字典的所有键值对,自然会输出全部内容,无法实现单个key查询
- 报错版本:Python强制要求函数体、循环体做缩进,无缩进会直接触发语法错误,且逻辑为遍历全字典,依然会输出所有内容
内容的提问来源于stack exchange,提问作者Helene
相关产品推荐
相关产品推荐

