【发布时间】:2018-08-02 17:07:37
【问题描述】:
我有一个列表,categories,它存储了一些不同的值。我正在使用字典my_dict 来查看categories 中是否有匹配的特定值。如果有,将为字典中的每个键执行唯一的功能。
我的代码目前看起来像:
categories = ['Creams', 'Bath', 'Personal Care']
my_dict = {
'Conditioners': lambda: print(1),
'Bath': lambda: print(2),
'Shaving Gels': lambda: print(3)
}
for category in categories:
fn = my_dict.get(category, lambda: None)
fn()
哪些输出:
2
我现在想做的是,如果在任何情况下,我在字典中有 2 个或更多值在 categories 中,我想做一个独特的函数,不同于为它们单独指定的函数。
例如:
categories = ['Creams', 'Bath', 'Personal Care']
my_dict = {
'Creams': lambda: print(1),
'Bath': lambda: print(2),
'Shaving Gels': lambda: print(3)
}
for category in categories:
fn = my_dict.get(category, lambda: None)
fn()
我不想打印1 和2,而是执行不同的功能,例如print('ABC')。
任何关于我如何实现这一目标的指导都将不胜感激。
【问题讨论】:
-
您能否进一步扩展:“我想做一个独特的功能,不同于为他们单独指定的功能。”您可以将
dict中的 lambdas 更改为您想要的任何功能吗? -
我可以将字典中的 lambda 更改为我需要的任何值。本质上,如果两个或多个键值与列表的内容匹配,我只是在寻找不同的 lambda。
-
好的,下面我改一下答案
标签: python python-3.x list dictionary search