# 基本数据类型 :dict# 1、字典的基本介绍# 字典是python中唯一的一个映射类型,他是以{}括起来的键值对组成,在dict中key是# 唯一的。在保存的时候,根据key来计算出一个内存地址,然后将key-value保存在这个地址中。# 这种算法成为hash算法,所以,切记,在dict存储的key-value中的key必须是可hash的。# (key是可以hash的,可以改变不是可哈希的。)# 已知的可哈希(不可变)的数据类型:str(字符串)、int(数字)、tuple(元组)、bool(布尔)# 不可哈希的(可变的):list(列表)、dict(字典)、set(集合)# 语法:{"key1":"name1","key2":"name2"...}# 注意:dict中key值需为可哈希的(不可变),value没有要求、可以保存任意类型的数据# dict中数据保存是无需的不连续的,所以不能用切片工作,他只能通过key来获取dict中的数据

# 二、字典增删改查和其他操作# 1、增加:# d={"name": "张南北", "age":"16"}# d["性别"] = "男"# d["name"] = "Daniel" # 如果字典中以有key增加至会覆盖原来的value# print(d)

# d = {"name": "张南北", "age": "16"}# d.setdefault("gender")# print(d) # {'name': '张南北', 'age': '16', 'gender': None}# 用setdefault添加时当只给出key是自动添加空值(None)# d.setdefault("gender", "男")# print(d)# d.setdefault("name", "Jack")# print(d)  # {'name': '张南北', 'age': '16'}# 当使用d.setdefault 添加时dict中原本有相同的key值则不会添加# d1 = d.setdefault("name", "Jack")# print(d, d1)  #{'name': '张南北', 'age': '16'} 张南北# d.setdefault("x","y") 增加时如果原dict中有对应的key则print(d.setdefault())为原来dict中key对应的value

# 2、删除:pop()、popitem()、clear()、del dic[]# pop(key):key对应的键值删除,当key值在原字典中找不到则会报错# d = {"name": "张南北", "age": "16"}# d.pop("name")# print(d)# d.pop("gender") #KeyError: 'gender'

# popitem:随机删除字典中一对键值(字典里面的元素排序是无序(最底层的key哈希值随机排列),popitem()删除的是无序的,但在python3.5删除看着是最后一个,只是计算机在中间层做的处理)# d = {"name": "张南北", "age": "16", "gender": "men"}# d.popitem()# print(d)

# clear:清空字典但字典最底层存储码还在# d = {"name": "张南北", "age": "16", "gender": "men"}# d.clear()# print(d)  #{}

# del d:删除 里面所有都删除(比clear更彻底)# del d# print(d)  # 报错  NameError: name 'd' is not defined# del d["name"]# print(d)

# 3、修改# d = {"name": "张南北", "age": "16", "gender": "men"}# d["age"] = "18"# print(d)  # 相当于新增(覆盖)# d2 = {"hobby": "play_game", "name": "Deniel"}# d.update(d2)# print(d)  # {'name': 'Deniel', 'age': '16', 'gender': 'men', 'hobby': 'play_game'}# 把d2中的内容更新到d中. 如果key重名. 则修改替换. 如果不存在key, 则新增.

# 4、查询:查询一般用key来查找具体的数据# 有两种方式查找:d["xxx"]、d.get("xxx")# d = {"name": "张南北", "age": "16", "gender": "men"}# print(d["name"])# print(d["hobby"])  #KeyError: 'hobby'# 当用此种方式查找时、字典中没有对应的key则会报错# print(d.get("age"))# print(d.get("hobby"))  # None# 此种方法查找当key时,字典中没有回输出None

# 5、其他操作:# keys、values、items# keys:找出字典中所有key的值以类似列表的形式保存可以迭代# d = {"name": "张南北", "age": "16", "gender": "men"}# print(d.keys())  #  dict_keys(['name', 'age', 'gender'])  类似列表,但是列表可以迭代# for c in d.keys():#     print(c)# values:找出字典中所有value的值以类似列表的形式保存可以迭代# items:找出字典中所有的键对# print(d.items())   # dict_items([('name', '张南北'), ('age', '16'), ('gender', 'men')])# for key, value in d.items():#     print(key, value)# 输出结果:name 张南北#           age 16#           gender men
# for c in d:#     print(c)# 结果:# name# age# gender 如果直接循环打印字典输出结果只有key

# 6、元组的解包# a, b = 1, 2# print(a, b)  #1 2# 将a,b的值互换# b, a = 1, 2# print(a, b)

# 三、字典的嵌套# 字典的嵌套 :一层层去找就ok# dic1 = {#  "name": "汪峰",#  "age": 18,#  "wife": {#  "name": '章⼦怡',#  "age": 28#  },#  "children": ['第⼀个⽑孩⼦', '第⼆个⽑孩⼦'],#  "desc": '峰哥不会告我吧. 没关系. 我想上头条的'# }# print(dic1["name"]) # 这样查找当嵌套字典中有多个重复的key输出第一层的key对应value值# print(dic1.get("wife").get("name"))   # 章⼦怡 # 优选第二种方法

转载于:https://www.cnblogs.com/z520h123/p/9837436.html

python D5 字典相关推荐

  1. Python中字典创建、遍历、添加

    Python中字典创建.遍历.添加 字典是Python中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快.下面列出字典的常用的用途. 一. ...

  2. Python中字典的使用方法

    Python的字典包含的元素是"键(key)-值(value)对".列表和元组是以数字作为索引的,字典可以看作是用键作为索引的. 1 字典的定义 使用大括号或者dict()构造方法 ...

  3. python 判断字典是否包含某个key,以及对应的value 值

    python 判断字典是否包含某个key 可以使用 in 来判断 具体如下: num = {"a": 1, "b": 2, "c": 3} ...

  4. python嵌套字典取值_python嵌套字典比较值与取值的实现示例

    python嵌套字典比较值与取值的实现示例 本文通过示例给大家介绍了python嵌套字典比较值,取值,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 #取值import t ...

  5. python实现字典遍历稳定有序使用collection包OrderedDict

    python实现字典遍历稳定有序使用collection包OrderedDict **注意虽然python3.6之后,dict本身也会保留插入的顺序,但是并不是严格保证的: Python3.6中的字典 ...

  6. python 遍历字典

    python 遍历字典 d = {'a': 1, 'b': 2, 'c': 3, 4: 'd', 5: 'e'} for key in d:print(key, ":", d[ke ...

  7. python字典怎么排序_如何对python的字典进行排序

    我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...

  8. 如何在Python中将字典键作为列表返回?

    本文翻译自:How to return dictionary keys as a list in Python? In Python 2.7 , I could get dictionary keys ...

  9. python 对字典排序

    工作中经常需要对python的字典进行排序,下面就简单介绍一下如何对字典排序: 使用sorted命令,默认进行从大到小字母序排序: >>> from operator import ...

最新文章

  1. 模板 - 莫比乌斯反演(常用技巧)
  2. 宇宙和世界真的是虚拟的吗?
  3. 阿德:我在去哪儿干了些什么,3个月业绩400%提升
  4. 几种常见的集成触发器(D、T、JK)
  5. Linux7安装gi报错,Redhat 7.6安装11G RAC GI时遇到此类报错
  6. 网页聊天室win10界面源码
  7. Arm开发板内核驱动模块--Helloworld及Makefile
  8. java Calendar 小时值得到24进制格式
  9. 设置字符串位数,不足位数补0
  10. 开启Golang编程第一章
  11. Cockos REAPER for Mac(音轨录制编辑软件)
  12. 数学建模入门-python实现单目标模糊综合评价法
  13. 2021京东618活动脚本App和电脑版最新版(建议使用app版)
  14. 计算机显示不出桌面的文件夹,win10电脑保存文件路径不显示桌面怎么办?
  15. 使用Cesium的 Material (材质)绘制警戒线
  16. Unity3d调用Andriod
  17. (一)Activiti 数据库25张表——一般数据1 (ACT_GE_BYTEARRAY)
  18. 【codevs 4246】奶牛的身高 差分约束
  19. GUID 分区表详解
  20. Linux 压缩、解压、打包操作

热门文章

  1. go语言中append函数的使用
  2. wireshark 与 tcpdump抓包
  3. Vim 高亮显示单词并查找
  4. Nacos注册服务都注册在public空间下
  5. 来自智能合约中的威胁:去中心化应用安全威胁Top10榜单
  6. Android存储系统之架构篇
  7. android6.0源码分析之Camera API2.0下的Capture流程分析
  8. bat脚本注释多行_cmd批处理常用符号详解
  9. python边缘检测代码_Python中的边缘检测
  10. server如何调用 thrift_一文带你了解 Thrift,一个可伸缩的跨语言 RPC 框架(pinpoint 源码分析系列)...