Python - 在列表中搜索多个值并执行多个操作

exp*_*_v2 4 python search list python-3.x

我正在尝试搜索具有特定值的列表,如果列表中存在任何这些值,我想执行不同的操作.

目前这是我正在使用的列表:

print(categories)
['Creams', 'Bath', 'Personal Care']
Run Code Online (Sandbox Code Playgroud)

我想要做的是搜索此类别列表以获取一些不同的值.为此,我已经转换categories为一个集合,并使用if语句单独搜索每个值.

例如:

c = set(categories)
if "Conditioners" in c:
     print("1")
if "Bath" in c: 
     print("2")
if "Shaving Gels" in c:
     print("3")
Run Code Online (Sandbox Code Playgroud)

哪个回报:

2
Run Code Online (Sandbox Code Playgroud)

我理想的做法是将我的标准放入列表或其他相关数据结构中,如果该值categories以有效的方式存在,则让它执行该特定操作.

And*_*ely 6

您可以将函数存储在字典中,其中值是所需的函数.这样,您可以通过键轻松访问它们,并且您可以正常遍历类别:

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()
Run Code Online (Sandbox Code Playgroud)

输出:

2
Run Code Online (Sandbox Code Playgroud)