首页 > 其他分享 >在字典中搜索关键字

在字典中搜索关键字

时间:2023-07-09 18:46:52浏览次数:33  
标签:return name theList theKey 关键字 搜索 字典

功能是为了找到关键字并返回关键字路径,当然只适用于字典中关键字是唯一的

第一种:关键字作为字典的键

"""字典格式:
{
	"a": "",
	"b": {
		"b1": ""
	}
}
"""
def search(theDict: dict, theKey: str):
    for key in theDict.keys():
    	if key == theKey:
    		return [key]
    	else:
    		subDict: dict = theDict[key]
    		if len(subDict.keys()) > 0:
    			keyList = search(subDict, theKey)
    			if keyList is not None:
    				return [key] + keyList
   			else:
    			pass
    return None

第二种:关键字作为字典的值

"""
字典格式:
{
	"name": "a",
	"chidren": {
		"name": "a1"
	}
}
数据格式
[
	{
		"name": "a",
		"children"" [{
			"name": "a1"
		}]
	},
	{
		"name": "b",
		"chidren": []
	}
]
"""
def search(theList: list, theKey: str):
    for i in range(len(theList)):
        # 获取子字典
        children = theList[i].get("children")
        if theList[i].get("name") == theKey:
            return [theList[i].get("name")]
        elif children is not None:
            subList = search(children, theKey)
            return [theList[i].get("name")] + subList
        else:
            pass
    return None

标签:return,name,theList,theKey,关键字,搜索,字典
From: https://www.cnblogs.com/shallow-dreamer/p/17539118.html

相关文章

  • 删除搜索历史
    /***删除历史记录**@paramdto*@return*/@OverridepublicResponseResultdelUserSearch(HistorySearchDtodto){//1、检查参数if(dto.getId()==null){returnResponseResult.errorResult(AppHttp......
  • 查询搜索历史
    /***查询搜索历史**@return*/@OverridepublicResponseResultfindUserSearch(){//获取当前用户ApUseruser=AppThreadLocalUtil.getUser();if(user==null){returnResponseResult.error......
  • python笔记:第四章使用字典
    1.1概述说白了就是键值对的映射关系不会丢失数据本身关联的结构,但不关注数据的顺序是一种可变类型格式:dic={键:值,键:值}键的类型:字典的键可以是任何不可变的类型,如浮点数,字符串,元组1.2函数dict可以从其他映射或键值对创建字典items=[('name','Gumby'),('ag......
  • 贪心&&模拟&&搜索
    贪心基于微扰证明但关系不具有传递性的贪心感觉起了个离谱的标题先看题:P2123皇后游戏既然这题像国王游戏就顺着考虑微扰贪心,对于两个大臣\(i,j=i+1\),假设现在的顺序是最优顺序,那么记\(last=c_{i-1},sum=\sum_{k=1}^{i-1}a_k\)有:\[cost_1=max\{last+b_i,sum......
  • 保存搜索记录
    一、实现思路输入关键字——》搜索——异步请求——》记录关键字【异步请求保存关键字,让用户快速看到搜索结果,等待时间更短】保存——>查询搜索记录——存在——更新到最新时间不存在——搜索记录的数量是否超过10——没超过则直接保存,超过则替换最后......
  • 公共操作-推导式(集合、列表、字典)
    1'''2Python推导式(Comprehensions)是一种简洁而强大的语法,用于创建新的数据结构(如列表、集合和字典)或对现有数据结构进行转换。3它可以使用更简单的方式完成迭代、筛选、映射等操作。45'''6#1.循环生成列表7#1.1准备⼀个空列表8list1=[]9#1.2书......
  • 爬天梯 + 放苹果 (记忆化搜索大大优化时间复杂度)
    记忆化搜索——即把搜过的地方记录下来,后面再搜的时候直接取就好了 题解:1#include<iostream>2usingnamespacestd;3#definelllonglong4constintN=100;5lla[N],n;6lldfs(lln)7{8if(n<=1)9return1;1011if(!a......
  • <折半搜索>题型总结
    折半搜索meetinthemiddle算法(又叫splitandmerge算法)顾名思义这种算法就是同时从两个点往中间搜索,直到碰头为止而使等式两边未知数个数相等或尽量均匀分布是用meetinthemiddle算法解决等式问题的常见方法SP4580ABCDEF题目描述给定一个集合S(元素个数100以内)求......
  • 字典
    语法字典是一种无序的数据结构,用于存储键-值对。它使用花括号{}来表示,并且键和值之间使用冒号:分隔,各个键值对之间⽤逗号隔开.语法:my_dict={key1:value1,key2:value2,...}其中,key是唯一的且不可变的(通常使用字符串或数字),而value可以是任意类型的对象。字典里......
  • app端——搜索记录mongoDB
    一、需求说明展示用户的搜索记录10条,按照搜索关键词的时间倒序可以删除搜索记录保存历史记录,保存10条,多余的则删除最久的历史记录二、数据存储说明用户的搜索记录,需要给每一个用户都保存一份,数据量较大,要求加载速度快,通常这样的数据存储到mongodb更合适,不建议直接存储到关系......