五、字典的功能

---恢复内容开始---

字典是由每一组键值对组成  每个键值对都是关系型数据,查询速度很快  通过二分法查找

dic = {'key':'value','name':'yy','hobby':'heheh','list':[2,3,'ee'],2:True

....}

数据类型的另一种分类方式

可变数据类型(不可哈希类):list,dict,set

不可变数据类型(可哈希类):str  int   bool  tuple 

容器类型 (承载各种数据类型)                             : list  dic  tuple 

字典的的增、删、改、查

字典的键是唯一的,一个字典不可能存在两个相同的键

字典的顺序:3.5之前都是无序的  3.6 之后有序的(创建字典的时候按照一定的顺序插入,看起来有序的)  

字典的增、删、改。查

1.哈希表  每个字典都有一个哈希表 通过哈希表来定位每个键值对  方便查找 

 

dic = {'key':'value','name':'yy','hobby':'heheh','list':[2,3,'ee'],2:True}
print(hash('key'))
print(hash('value'))

#-2335181179344269333
#5043510051693866644

 

每个每个键值对都有hash数 这个hash数值 是不断变化的

字典的增加

第一种:有则覆盖,无则添加  添加的位置是无序的 打印顺序也是无序的 每次打印顺序都不一致

 

dic = {'key':'value','name':'yy','hobby':'heheh','list':[2,3,'ee'],2:True}
dic['姓名'] = '张三'
dic['key'] = 'hehe'
print(dic)
#{'list': [2, 3, 'ee'], 2: True, 'name': 'yy', '姓名': ['张三'], 'key': 'value', 'hobby': 'heheh'}
#{'list': [2, 3, 'ee'], 'key': 'hehe', 2: True, 'name': 'yy', 'hobby': 'heheh'}

 

第二种 setdefault   有则不变 无则添加

 

dic = {'key':'value','name':'yy','hobby':'heheh'}
dic.set.default('key','大炮')
dic.set.default('sex','femal')
print(dic)
# dic = {'key':'value','name':'yy','hobby':'heheh'}
#
dic = {'key':'value','name':'yy','sex':'femal',hobby':'heheh'} 也是无序的增加进去
第三种 update
dic1.update(dic2)
将dic2中的键值对加入到dic1中,如果dic2中的键和dic1中的重复,则用dic2中的值覆盖dic1中的值 反之亦然
字典的删除
dic = {'key':'value','name':'yy','hobby':'heheh'}
第一种: pop 有返回值
print(dic.pop('key') 只能删除键 打印的结果会是这个键对应的值 如果删除值 会报错
# value
print(dic.pop('sex',None) 如果你要删除的键在这个字典中不存在,这种会返回你设定的值None 如果不设置的话 会报错
# None
第二种: clear
直接清空整个字典 留下空的字典
dic.clear()
print(dic)
#{}
第三种:del
dic = {'key':'value','name':'yy','hobby':'heheh'}
del dic
print(dic)
报错
del dic['key']
只能通过键来删除值 如果删除的是值 会报错
print(dic)
#{
'name':'yy','hobby':'heheh'}
第四种:popitem         这是个逗比功能 随机删除字典中的键值对 但是可以返回
print(dic.popitem())
 
 
 字典的查
dic = {'key':'value','name':'yy','hobby':'heheh'}

第一种:通过键来查值
print(dic['key']}

 

#  value 

第二种:get  通过键来查找值

print(dic.get('key')

#value

print(dic.get('sex','你要查找的没有'))   如果要查找的键 不存在则默认返回None  如果自己定义了参数 则返回你定义的

#你要查找的没有   

其他方法   C

 

dic.values()    把字典的键值对中的值 单独拉出来组成一个数据类型为dic_values的([])

print(dic.values())   dict_values(['heheh', 'value', 'yy'])

 

 

dic.keys()          把字典的键值对中的键 单独拉出来组成一个数据类型为dic_key的([])

print(dic.keys())    dict_keys(['name', 'hobby', 'key'])

dic.items()        把字典的键值拉出来组成一个数据类型为dic_items的([])

print(dic.items())  dict_items([('key', 'value'), ('name', 'yy'), ('hobby', 'heheh')])

  以上三种方法得出来的数据类型只能循环  但是可以转换为列表的数据类型

分别赋值  这个很有意思

a,b = 2,3 

print(a,b)

#a = 3 

 b = 2  一行代码把a b 的值互换

(a,b)= (2,3)

print(a,b)   # 2,3

 

dic = {'key':'value','name':'yy','hobby':'heheh'}
for x,y in dic.items():
print(x,y)

#hobby heheh
name yy
key value

 

---恢复内容结束---

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值