基本数据类型(dict)字典(键值对)

​ 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯⼀的. 在保存的时候, 根据key来计算出⼀个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可的, 如果你搞不懂什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的, 那么可哈希就意味着不可变. 这个是为了能准确的计算内存地址⽽规定的.

格式: dict = {key1: value1, key2: value2....}

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

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

字典的特性 :

查询的效率非常高, 通过key来查找元素

字典比较消耗内存 最长用的数据: 字符串 列表 字典

字典能够将数据进行关联

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

字典的增删查改

增加

setdefault(设置默认值) dic.setdefault(key,value) 格式用逗号隔开

直接用key添加

dic = {}

dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组合进dict

dic['age'] = 18

print(dic)

# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值

dic.setdefault('李嘉诚') # 也可以往⾥⾯设置值.

print(dit) # 打印出来是 {'李嘉诚':None}

dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会起作⽤

print(dic) #这时出现的是依旧是 {'李嘉诚':None}

删除

pop 弹 指定key 删除

dit.pop(key)

popitem 随机删除

dit.popitem() 3.5版本以后默认删除最后一个

del 指定删除

del dit[key] 字典没有索引 只能根据key去删除

clear 清空

dit.clear() 清空字典

修改

利用key去修改

update 更新 (用新的dict去跟新)

第一种 :利用key去修改:

dic = {"刘能": "王小利", "赵四": "刘晓光", "王木生": "范伟", "谢大脚": "于月仙"}

dic['王木生'] = "刘伟"

print(dic)

# 结果: {"刘能": "王小利", "赵四": "刘晓光", "王木生": "刘伟", "谢大脚": "于月仙"}

第二种 : update 更新

dic = {"刘能": "王小利", "赵四": "刘晓光", "王木生": "范伟", "谢大脚": "于月仙"}

dic2 = {"刘能": "大阳哥", "赵四": "github", "王木生": "汪峰","王大拿": "金老板"}

dic.update(dic2)

print(dic)

#结果 :{"刘能": "大阳哥", "赵四": "github", "王木生": "汪峰", "谢大脚": "于月仙","王大拿": "金老板"} # 旧的覆盖,没改的不动,新加的补到最后

查询

直接用key

print(dic[key]) 如果key不存在会报错

get 方法 dic.get(key,xx)key不存在,会显示xx

print(dic.get(key))

如果key("sylar")不存在

第一个 print(dic.get("sylar")) # None 系统默认会显示None

print(dic.get("sylar", "⽜B")) # ⽜B 如果key不存在,第二个逗号会显示出 "⽜B"

setdefault() 新增后查询

新增(先看有没有key, 如果有就过, 如果没有,执行新增)

根据key把值返回,值也是新增也行是旧的

第一步 : 执行新增流程. 第二步 : 查询结果

dic = {}

dic["盖伦"] = "德玛西亚之力"

value = dic.setdefault("菲奥娜", "无双剑姬") # 新增

value2 = dic.setdefault("盖伦", "刘伟") # 由于已经存在了key。 所以新增不执行。 直接查询结果

value3 = dic.setdefault("薇恩", "坑")

print(value3) 结果 : "坑"

print(dic)

结果 : {"盖伦":"德玛西亚之力","菲奥娜":"无双剑姬","薇恩": "坑"}

其他相关操作

字典的遍历方式

dic遍历时,keys相当于是字典的索引,values可以看成keys对应的元素

# 对字典的遍历 :

dic = {"汪峰": "大陆音乐半壁江山", "周杰伦": "亚洲音乐天王", "罗志祥": "亚洲舞王"}

第一种:

# print(dic.keys()) # dict_keys(['汪峰', '周杰伦', '罗志祥']) 像列表但不是列表

for key in dic.keys():

print(key) # 拿到key

print(dic[key]) # 拿到value

第二种(最简化):

# print(dic.items()) # 拿到的是key和value

for k, v in dic.items(): # 当需要遍历字典. 在操作中涉及到key和value的时候.

print(k) # 元组的keys

print(v) # 元组的与keys对应的values

第三种(常用):

字典本身是一个可迭代对象,可以直接进行for循环

for el in dic: # 直接拿到key

print(el) # keys

print(dic[el]) # values

打印元组:

for item in dic.items():

print(item) # 打印出的结果是 dic里每一个(key:value)

enumerate 枚举 (,默认从0开始计) (类似range)

dic = {1:11,2:22,3:33,4:44,5:55,6:66,7:77,8:88,}

for i in enumerate(dic,1): # 也可以是dic.values / items

print(i)

# 打印结果 (默认显示的是keys)

(1, 1)

(2, 2)

(3, 3)

(4, 4)

(5, 5)

(6, 6)

(7, 7)

(8, 8)

解包和枚举

s = "wtf"

d = {}

for i, d[i] in enumerate(s):

pass

print(d)# 打印结果: {0:"w",1:"t",2:"f"}

keys() 获取所有键 这个返回的不是列表, 很像列表

values()获取所有的值

items() 获取所有的键值对. 返回的是元组

解构

解构, 直接把元组或者列表中的数据拿出来.

dict解包出来是 key

# 解构

a, b = 1, 2

print(a, b)

(c, d) = 3, 4

print(c, d)

e, f = [1, 2, 3] # 解构的时候注意数量必须匹配

print(e, f)

字典的嵌套

与list相似,索引换成key

# 字典的嵌套

dic1 = {

"name": "汪峰",

"age": 18,

"wife": {

"name": '章⼦怡',

"age": 28

},

"children": ['第⼀个⽑孩⼦', '第⼆个⽑孩⼦'],

"desc": '峰哥不会告我吧. 没关系. 我想上头条的'

}

print(dic1.get("wife").get("name"))

dict后缀_基本数据类型(dict)相关推荐

  1. dict后缀_学习词根dict 成片记单词

    虐单词的小伙伴你好,本节课我们通过例词来深入地学习和理解词根dict. 词根dict=say,表示"言.说". 用词根记单词是一种非常棒的方法.掌握了最基本的词根,可以关联成片成片 ...

  2. python映射类型-Python中的映射数据类型 dict

    ********dict************ 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value ...

  3. python字典调用_【python Dict】 python 字典操作

    python字典 是一个无序.以键值对存储的数据类型,数据关联性强.唯一一个映射数据类型.键:必须是可哈希(不可变的数据类型:字符串.数字.元组.bool)值,并且是唯一的 None: none 是一 ...

  4. Python基本语法_基本数据类型_字典类型详解

    目录 文章目录 目录 软件环境 字典(Dictionary) 创建一个字典对象 简单的创建 fromkey() 使用 keys 来创建字典 查询 查询字典中 key 映射的 value get() 查 ...

  5. python字典类型可迭代_核心数据类型--字典

    ## 概括 字典是python中唯一的**映射类型**,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储 ...

  6. python 两个dict合并,Python 中两个字典(dict)合并_python dict 合并_python 两个dict合并...

    Python 中两个字典(dict)合并_python dict 合并_python 两个dict合并 dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33 ...

  7. dict.items()和dict.iteritems()有什么区别?

    本文翻译自:What is the difference between dict.items() and dict.iteritems()? Are there any applicable dif ...

  8. 基本数据类型(dict)

    目录: 1.字典的简单介绍 2.字典增删改查和其他操作 3.字典的嵌套 一.字典的简单介绍 字典(dict)是python中唯一的一个映射类型,他是以{}括起来的键值对组成,在dict中key是唯一的 ...

  9. python字典是什么数据_python---基本数据类型 dict(字典)

    1. 什么是字典 字典是python中唯一的映射类型, 由{ } 括起来的键值对组成,在dict中key是唯一的.字典是以key:value的形式来保存数据, 字典存储数据的时候是用的hash值来存储 ...

最新文章

  1. C++ dynamic_cast操作符
  2. 执行apt-get命令提示没有该命令
  3. GYM 101908F - Music Festival
  4. 怎么把分开的pdf放在一起_糖和盐混在一起了要怎么分开?| 趣问万物
  5. 数列分块入门 8(LibreOj-6284)
  6. TCP/IP中的传输层协议TCP、UDP
  7. 初学者一些常用的SQL语句(一)
  8. python如何提高性能_python – 如何在这个短代码中提高numpy性能...
  9. Unable to find the requested .Net Framework Data Provider
  10. Atitit v3项目快速推进的推荐技术标准化 规范 流程
  11. atitit.javascript调用java in swt attilax 总结
  12. edui 富文本编辑_ueditor集成秀米编辑器
  13. Regester 正则表达式测试工具
  14. 菜鸟供应链实时数仓的架构演进及应用场景
  15. 创建maven【聚合工程】
  16. 浅谈进程地址空间与虚拟存储空间
  17. python多线程结束线程_Python多线程和Office第2部分
  18. 【现代无线通信技术】1.1OFDM/OFDMA技术
  19. 无线连接世界 创新驱动中国 《微波射频技术》杂志发布
  20. 【网站排名优化】如何对网站内容进行优化

热门文章

  1. 过度商业化的小丑——刘跑跑
  2. SDRAM学习(一)——初始化
  3. 6-3 电子书表格展示
  4. 利用Javascript生成txt文本文件
  5. 谷歌浏览器 F12或右键检查 开发者工具DevTool打开慢问题
  6. 一文看懂人工智能语音芯片
  7. 智商情商哪个重要_情商与智商,到底哪个更重要?
  8. Git 使用详解,日常使用 | 什么是git
  9. 基于微信小程序的‘香草屋’饮料奶茶点单小程序
  10. 某zhan sign