Python的字典类型为dict,用{}来表示,字典存放键值对数据,每个键值对用:号分隔,每个键值对之间用,号分隔,其基本格式如下:

d = {key1 : value1, key2 : value2 }

  键一般是唯一的,如果重复最后一个键值对会替换前面的,值不需要唯一,值可以取任何数据类型,但键必须是不可变的可哈希的,如字符串,数字或元组。

一、字典的“增删改查”

1.向字典中添加元素

将添加元素的键放进方括号中,然后用赋值操作,将添加元素的值赋值给键,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
lol["李青"] = "盲僧"
print(lol) {'亚索': '剑豪', '露露': '仙灵女巫', '提莫': '迅捷斥候', '李青': '盲僧'}

使用setdefault(key, value)方法,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
lol.setdefault("赵信", "德邦总管")
print(lol) {'亚索': '剑豪', '露露': '仙灵女巫', '提莫': '迅捷斥候', '赵信': '德邦总管'}

2.删除元素
使用pop(key)方法,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
lol.pop("亚索")
print(lol) {'露露': '仙灵女巫', '提莫': '迅捷斥候'}

使用del,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
del lol["露露"]
print(lol) {'亚索': '剑豪', '提莫': '迅捷斥候'}

popitem()方法可以删除字典中随机一个元素(Python3.6删除字典最后一项):

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
lol.popitem()
print(lol) {'亚索': '剑豪', '露露': '仙灵女巫'}

3.更改字典中的元素
通过key直接赋值,可以强制修改:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
lol["露露"] = "小萝莉"
print(lol) {'亚索': '剑豪', '露露': '小萝莉', '提莫': '迅捷斥候'}

使用update()方法,将新元素和更改后的元素存放进字典:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
loli = {"露露": "小萝莉","阿狸": "九尾妖狐"}
lol.update(loli)
print(lol) {'亚索': '剑豪', '露露': '小萝莉', '提莫': '迅捷斥候', '阿狸': '九尾妖狐'}

4.查找
使用key进行查找:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
print(lol["提莫"]) 迅捷斥候

使用get()方法进行查找,没有返回None,可以指定返回内容:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
print(lol.get("安妮", "黑暗之女")) 黑暗之女

使用setdefault()方法,没有返回None,可以指定返回内容:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
print(lol.setdefault("提莫", "小提莫")) 迅捷斥候

二、字典的操作
获取所有key,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
print(lol.keys()) dict_keys(['亚索', '露露', '提莫', '阿狸'])

获取所有value,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
print(lol.values()) dict_values(['剑豪', '仙灵女巫', '迅捷斥候', '九尾妖狐'])

获取所有键值对,示例如下:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
print(lol.items()) dict_items([('亚索', '剑豪'), ('露露', '仙灵女巫'), ('提莫', '迅捷斥候'), ('阿狸', '九尾妖狐')])

clear()清空字典中的所有元素:

 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
lol.clear()
print(lol) {}

fromkeys()快速创建一个dict:

 dic = dict.fromkeys(['Jay','JJ'], ['周杰伦', '林俊杰'])
print(dic) {'Jay':['周杰伦', '林俊杰'], 'JJ':['周杰伦', '林俊杰']}

注意:如果用fromkeys创建出的字典,value是列表,会有浅拷贝问题,当一个列表增加元素,其他列表也会增加。

最新文章

  1. JAVA设计模式之模板模式
  2. 【转载】 Spark性能优化指南——基础篇
  3. 开发工程师面试的秘密( 整理自 Export C Programming )
  4. linux 学习随笔-文件目录管理
  5. iOS事件传递&响应者链条
  6. 【POJ】【1637】Sightseeing tour
  7. jQuery之手势密码
  8. Angularjs中的缓存以及缓存清理
  9. Invalid bound statement (not found):xxx错误的可能原因
  10. hive 非等值连接, 设置hive为nonstrict模式
  11. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)
  12. Mybatis框架基础支持层——反射工具箱之Reflector&ReflectorFactory(3)
  13. localStorage、sessionStorage用法以及区别
  14. redux最佳实践
  15. 背水一战 Windows 10 (50) - 控件(集合类): ItemsControl - 基础知识, 数据绑定, ItemsPresenter, GridViewItemPresenter, ListViewItemPresenter
  16. Android学习笔记PreferenceFragment的使用
  17. 微软BI 之SSAS 系列 - 在SQL Server 2012 中开发 Analysis Services Multidimensional Project
  18. JVM工具jcmd实践
  19. Core Java 6
  20. selenium对应三大浏览器(谷歌、火狐、IE)驱动安装

热门文章

  1. 升级ambari、HDP版本(ambari 2.1升级到2.4、HDP2.3升级到2.5)
  2. Oracle迁移到MySQL性能下降的注意点(转)
  3. 关于JFame 屏幕居中显示的问题
  4. 黄聪:bootstrap的模态框modal插件在苹果iOS Safari下光标偏离问题解决方案
  5. java线程之间的通信
  6. 解除IE锁定主页批处理
  7. 【Mysql】事务日志-Write Ahead logging vs command-logging(转)
  8. 服务容错保护断路器Hystrix之三:断路器监控(Hystrix Dashboard)-单体监控
  9. WordPress无法显示Gravatar头像的解决方法
  10. linux安装tomcat9