[ python ] 字典的使用
数据类型划分:
可变数据类型:list、dict、set 不可哈希
不可变数据类型:tuple、bool、int、str 可哈希
字典
python内置了字典类型,使用键-值(key - value) 存储,具有极快的查找速度;
key:必须是 不可变数据类型
value:任意数据类型
dict 优点:
二分查找效率快
存储大量的关系型数据
特点:字典是无序的
dict的增删改查
1. 增加
(A) dic1['key'] = value 没有键值对,则添加;如果键,则值覆盖。
1 2 3 4 5 6 | dic1 = { "name" : "hkey" , "age" : 18 , "sex" : "male" } dic1[ "heigh" ] = 185 dic1[ 'name' ] = 'jay' print (dic1) # 执行结果: # {'age': 18, 'sex': 'male', 'name': 'jay', 'heigh': 185} |
(B) set_default() 有键值对,不做任何改变,没有才添加。
1 2 3 4 5 6 7 8 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } dic.setdefault( 'age' , 20 ) # 存在不修改,不报错 dic.setdefault( 'heigh' , 180 ) # 不存在修改。 print (dic) # 执行结果: # {'sex': 'male', 'heigh': 180, 'age': 18, 'name': 'jay'} |
2. 删除
(A) pop(key, None) 删除键值对,并返回值。如果字典中没有删除的key,则返回 None
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } t1 = dic.pop( 'name' ) # 当 key 存在时,删除字典中的key-value并返回value值给 t1 print (t1) print (dic) # 执行结果: # jay # {'sex': 'male', 'age': 18} dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } t1 = dic.pop( 'name1111' , None ) # 当 key 不存在时,则返回定义的第二个参数给 t1 print (t1) # 执行结果: # None |
(B) popitem() 随机删除并返回删除元组,元组里面是删除的键值对
1 2 3 4 5 6 7 8 9 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } t1 = dic.popitem() # 随机删除key-value 并作为元组返回给 t1 print (t1, type (t1)) print (dic) # 执行结果: # ('name', 'jay') <class 'tuple'> # {'sex': 'male', 'age': 18} |
(C) del 删除键值对或者整个字典
1 2 3 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } del dic[ 'name' ] # 删除字典中的键值对 del dic # 直接删除整个字典 |
3. 修改
(A) update 合并两个字典
1 2 3 4 5 6 7 8 9 10 11 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } dic2 = { 'name1' : 'hkey' , 'age1' : 20 } dic.update(dic2) # 将dic2作为参数合并到dic中,dic变,dic2不变 print ( 'dic:' , dic) print ( 'dic2:' , dic2) # 执行结果: # dic: {'age': 18, 'name': 'jay', 'sex': 'male', 'name1': 'hkey', 'age1': 20} # dic2: {'age1': 20, 'name1': 'hkey'} |
4. 查询
(A) dic.keys 字典key的组合,可以当成list类型来处理
(B) dic.values 字典value的组合,可以当成list类型来处理
(C) dic.items 字典(key, value)的组合,可以当做元组来处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } print (dic.keys()) print (dic.values()) print (dic.items()) # 执行结果: # dict_keys(['age', 'sex', 'name']) # dict_values([18, 'male', 'jay']) # dict_items([('age', 18), ('sex', 'male'), ('name', 'jay')]) keys()、values()、items() 一般用 for 来遍历 for k in dic: # 循环 key 值 print (k) for v in dic.values(): # 循环 value 值 print (v) for k, v in dic.items(): # 循环key, value 值 print (k, v) |
(D) dic.get() 存在则返回 value值,不存在就返回预设值
1 2 3 4 5 6 7 | dic = { 'name' : 'jay' , 'age' : 18 , 'sex' : 'male' } print (dic.get( 'name' )) print (dic.get( 'name111' , None )) # 执行结果: # jay # None |
练习题:
s1 = 'asdf123sdfer45sdf3'
统计 s1 出现数字的次数,连续的数字算一个数字;
1 2 3 4 5 6 7 8 9 10 11 | s1 = 'asdf123sdfer45sdf3' for i in s1: # 循环整个 s1 字符串 if i.isalpha(): # 当单个字符串是字母的时候,就将字母替换成空格 s1 = s1.replace(i, ' ' ) li = s1.split() # 通过空格将字符串 s1 分隔成列表 print ( len (li)) # 直接统计列表元素的个数 # 执行结果: # 3 |
本文作者:hukey
本文链接:https://www.cnblogs.com/hukey/p/9621631.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步