在Python中如何在字典键中找到多个关键字

2024-09-30 14:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想搜索一个以title作为键,http链接作为赋值给该键的字典。我想要一个在字典中搜索的函数,它搜索一个包含我放入函数中的所有关键字的键,如果它没有找到任何包含关键字的键,它将什么也不返回。以下是格言:

我试过if和in语句,但到目前为止还没有。在

dict = {
   'adidas originals yung-1 - core black / white':
        'https://kith.com/products/adidas-originals-yung-1-core-black-white',
   'adidas originals yung-1 - grey one / white': 
        'https://kith.com/products/adidas-originals-yung-1-grey-one-white',
   'hoka one tor ultra high 2 wp boot - black': 
        'https://kith.com/products/hoka-one-tor-ultra-high-2-wp-black'}

假设我想搜索black和ultra,函数将返回字典中的第三项,因为hoka one tor ultra high 2 wp boot - black'包含关键字black和ultra。如果它不包含我输入的所有关键字,它将不会在字典中返回任何内容。在


Tags: 函数httpscom字典关键字oneproductsblack
3条回答

使用列表理解,您可以执行以下操作:

def getUrl(keyword):
    return [dict[key] for key in dict.keys() if keyword in key]

如果我用`keyword='black'调用它,它将返回:

^{pr2}$

这将返回与包含keyword的键对应的url列表。在

如果您有多个keyword这应该可以做到:

def getUrl(keywords):
    return [dict[key] for key in dict.keys() if len([keyword for keyword in keywords if keyword in key])>0]

如果我用keywords = ['black','ultra']调用它,它将返回:

^{pr2}$

如果没有找到密钥,它们都返回[]。在

如果您想创建一个接受关键字列表并检查每个关键字是否以值表示的函数,可以执行以下操作:。在

keywords = ['black', 'ultra'] 

def dict_search(list_of_keywords):
    for key in dict.keys():
        if all(x in key for x in list_of_keywords):
            return(key)

In [1]: dict_search(keywords)
hoka one tor ultra high 2 wp boot - black

您可以像这样迭代字典的键:

for item in dic:
    if searchterm in item:
        print('do something')

相关问题 更多 >