python 字典
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #__author__ = 'juzi_juzi' ''' 类似于我们常用的字典,根据某个指定的内容,可以找到对应的详细解释; 解释为键值对存放,key -->> value; 特点: 1、存放为键值对的形式; 2、键不重复,值可重复; 3、键不可修改,不可变,值可修改,可存放任何对象; ''' #初始化字典的两种方法: #1、dict1 = dict() #2、dict2 = {} fruit_price = { 'apple' : 4 , 'orange' : 2.5 , 'banana' : 3 } #向字典中添加元素 fruit_price[ 'sugarcane' ] = 10 #修改字典中指定key的value fruit_price[ 'apple' ] = 2.5 #获取指定key的value print (fruit_price[ 'orange' ]) #类似列表的写法,只是将列表的角标换成字典的key; #***************删除指定字典相关内容 *************** del fruit_price[ 'sugarcane' ] print (fruit_price) fruit_price[ 'sugarcane' ] = 10 return_value = fruit_price.pop( 'sugarcane' ) #删除给定key的信息,返回key 对应的value; print ('pop key return value is :{} and old fruit_price\ value is :{}'. format (return_value,fruit_price)) fruit_price[ 'sugarcane' ] = 10 fruit_price.clear() #清空了整个字典,返回None; print (fruit_price) #***************列表(元祖)转字典相关内容 *************** #列表(元祖)转字典的前提是,列表(元祖)双元素; list1 = ( 1 , 2 ) list2 = [ 'key' , 'value' ] list3 = [ 'name' ,[ 'zhangsan' , 'lisi' ]] new_dict = dict ([list1,list2,list3]) print (new_dict) #{1: 2, 'key': 'value', 'name': ['zhangsan', 'lisi']} #***************列表常用方法 *************** #get() ,key 不存在fanhui Non,不抛异常; cars = { 'BMW' : 100 , 'BUICK' : 50 } car_bmw = cars.get( 'BMW' ) #获取指定key 的值; car_das = cars.get( 'DAS' , 40 ) #获取指定key 的值,如果key 不存在,用默认的值显示; print ( 'bmw:{}, das:{}' . format (car_bmw,car_das)) #keys(), values(), items() print (cars.keys()) #获取所有key,返回dict_keys; print (cars.values()) #获取所有key,返回dict_value; print (cars.items()) #获取所有key,返回dict_item; print ( list (cars.keys())) #获取所有key,返回keys列表; print ( list (cars.values())) #获取所有values,返回values列表; print ( list (cars.items())) #获取所有items,返回items列表; #update() 更新字典,已有的覆盖,没有的添加; car2 = { 'Chevy' : 30 , 'Infiniti' : 60 } cars.update(car2) # 返回为None,修改了原字典; print (cars) # {'BMW': 100, 'BUICK': 50, 'Chevy': 30, 'Infiniti': 60} #popitem()方法,随机弹出字典中的一个Key-value对;看起来似乎总是弹出字典中最后的k-v; print (cars.popitem()) #返回弹出的key,value组合,tuple(k,v); k,v = cars.popitem() #这种写法更经常使用; print ( 'key is {} and value is :{}' . format (k,v)) # setdefault()方法,用于根据 key 来获取对应 value 的值;如果key在不存在,那么会先设置默认的value; #然后在返回value; 其实这个方法叫getdefault更好理解;说白了就是key 存在不存在均能返回value; cv = cars.setdefault( 'Citroen' , 25 ) #Citroen不存在,设置默认值返回; bv = cars.setdefault( 'BMW' , 25 ) # BMW key 存在,所以不讲默认值赋予; print ( 'key not exist get value:{},key exist get value:{}' . format (cv,bv)) print (cars) # fromkeys() 给定多个key,转换成字典的key,可设置默认值; c_key_list = cars.keys() #获得cars Key列表; c_key_tuple = tuple (c_key_list) new_dict_from_list = dict .fromkeys(c_key_list) new_dict_from_tuple = dict .fromkeys(c_key_tuple, 80 ) print (new_dict_from_list) print (new_dict_from_tuple) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)