一. 字典的简单介绍

    字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法

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

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

语法 :

  {key1: value1, key2: value2....}

注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据

dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. 而hash表不是连续的. 所以不能进行切片工作. 它只能通过key来获取dict中的数据

二. 字典的增删改查和其他相关操作

1. 增加

# 增加
#如果dict中没有这个key,就会新增一个key_value的组合进dict
dic = {'name':'武松'}
dic['行者'] = '武松'
print(dic)
dic.setdefault('九纹龙','')
print(dic)

2. 删除

# 删除
dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'}
ret = dic.pop('及时雨') #如果dic没有这个key,则报错.反之,返回被删value
print(dic)
print(ret)
del dic['玉麒麟'] #随机删除
ret = dic.popitem() #清空字典所有内容
dic.clear()
print(dic)

3. 修改

#修改
dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'}
dic1 = {'及时雨':'宋江','玉麒麟':'杨雄','智多星':'吴用'}
dic.update(dic1)
# 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增.
dic = {'age':,'name':'jiam','money':}
dic['age'] = dic['age'] - #通过key来进行修改
print(dic)

4. 查询

   查询⼀一般⽤用key来查找具体的数据.

#查询
dic = {'age':,'name':'jiam','money':}
print(dic['name'])
print(dic['hobby']) #通过key进行查询,如果key不存在,则报错
print(dic.get('hobby')) #key不存在,返回默认值None,也可新设置默认值 # . 首先判断原来字典有没有这个key。如果没有,执行新增.
# . 用这个key去字典中查询,返回查到的结果
dic.setdefault('hobby','篮球')
ret = dic.setdefault('name')
print(ret)
print(dic)

5. 其他相关操作

# 解构,解包
a,b = (,)
print(b)
dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'}
print(dic.keys()) #打印所有的key
print(dic.values()) #打印所有的value
print(dic.items())
for a,b in dic.items():
print(a) for a in dic:
print(a)#直接循环,打印的是key
print(dic[a])
#修改
dic = {'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴用'}
dic1 = {'及时雨':'宋江','玉麒麟':'杨雄','智多星':'吴用'}
# 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存 在key, 则新增.
dic = {'age':,'name':'jiam','money':}
dic['age'] = dic['age'] - 1 #通过key来进行修改
print(dic)

最新文章

  1. js延迟3秒后跳转
  2. Iframe 在项目中的使用总结
  3. selenium--python如何定位一组元素并返回文本值
  4. poj 1474 Video Surveillance - 求多边形有没有核
  5. DBA_Oracle LogMiner分析重做和归档日志(案例)
  6. Musical Theme
  7. win7系统64位plsql的设置
  8. c# 替换所有中文、标点符号,全角转半角
  9. jQuery_serialize的用法
  10. 学习 Vim —— Vimtutor 总结笔记
  11. JavaScript的函数声明与函数表达式的区别
  12. 第三次spring会议
  13. MySQL高可用方案-PXC环境部署记录
  14. html介绍和head标签
  15. 期盼已久的spring-net居然有新版本2.0.1-GA
  16. Android将view保存为图片并放在相册中
  17. struts从2.3.X升级到2.5.18中遇到的问题及解决办法
  18. [JSOI2018]机器人
  19. androidUI异步消息
  20. pug.compile() will compile the Pug source code into a JavaScript function that takes a data object (called “locals”) as an argument.

热门文章

  1. Real-time storage area network
  2. HDU 1143 Tri Tiling(递归)
  3. qt的应用层主要是大型3d,vr,管理软件和器械嵌入软件(有上千个下一代软件黑科技项目是qt的,美国宇航局,欧洲宇航局,超级战舰DDG1000)
  4. Blend_技巧篇_导入PSD文件制作ToggleButton (Z)
  5. vector删,erase和remove难怪--【STL】
  6. wpf之3d基础
  7. WPF 属性变更通知类的实现
  8. WPF 绑定父类属性
  9. VisualStateManager
  10. WPF查找父元素子元素