字典

  • 字典由key和value组成
  • 字典的key必须是不可变对象
  • 字典的key唯一 之后再写同名key会覆盖前面
  • 字典是无序可变得序列
  • {} dict() 都表示空字典
  • 字典通过key获取value值

字典的查

1
根据键查找值  找不到报错
dict[key]books = {"book_Name1":"百年孤独",
"book_Name2":"老人与海",
"book_Name3":"六里庄遗事",
"book_Name4":"一个人的村庄",
"book_Name5":"简爱",
}
b = books["book_Name3"]
print(b)  结果"六里庄遗事"b = books["book_Name8"]
print(b)  找不到报错2
同样是根据键查找,但是找不到返回缺省值
.get()b = books.get("book_Name2","快乐")
print(b) 结果为 老人于海  找的到返回对应值b = books.get("book_Name7","我是快乐的")
print(b) 返回我是快乐的   即找不到的时候返回后面你设置的缺省值默认是None

字典的删除

1
books = {"book_Name1":"百年孤独",
"book_Name2":"老人与海",
"book_Name3":"六里庄遗事",
"book_Name4":"一个人的村庄",
"book_Name5":"简爱",
}
1
按key删除  返回删除的值
.pop()
print(books.pop("book_Name1"))  返回 删除键值对的值   即百年孤独print(books)   返回{'book_Name2': '老人与海', 'book_Name3': '六里庄遗事', 'book_Name4': '一个人的村庄', 'book_Name5': '简爱'}2
按键删除什么都不返回
del books[key]
print(books)
del books["book_Name1"]   干掉了book_Name1
print(books)3
清空字典慎用
.clear()
books.clear()
print(books)  字典变成空字典了

字典的增

books = {"book_Name1":"百年孤独",
"book_Name2":"老人与海",}books1={"book_Name3":"六里庄遗事",
"book_Name4":"一个人的村庄",
"book_Name5":"简爱",
}1
将一个字典中的键值对添加到另外一个字典中
.update(dict)主          被添加的对象
books.update(books1)
print(books)   结果为 两个字典的键值对都有
print(books1)  结果 不变2
通过给键赋值来创建字典(前提是键不在字典中不然会覆盖)books["books9"] = "刺猬的优雅"print(books)  因为字典中没有这个键所以添加进{'book_Name1': '百年孤独', 'book_Name2': '老人与海', 'books9': '刺猬的优雅'}

遍历字典

books1={"book_Name3":"六里庄遗事",
"book_Name4":"一个人的村庄",
"book_Name5":"简爱",
}1
通过键遍历
.keys()可以返回键的可迭代对象
a = books1.keys()
a = list(a)
print(a)   结果 ['book_Name3', 'book_Name4', 'book_Name5']
拿到列表直接for in 遍历做他2
通过遍历值直接拿到值的可迭代对象
.values
a = books1.values()
print(a)
a = list(a)
print(a)['六里庄遗事', '一个人的村庄', '简爱']3
key和value一起拿
.items()a = books1.items()a = list(a)
print(a)[('book_Name3', '六里庄遗事'), ('book_Name4', '一个人的村庄'), ('book_Name5', '简爱')]
可以通过成员方法in判断key在不在字典中

Zip函数

zip用于把多个可迭代对象组合起来对应元素组和对象个数不一致的时候以短为主

zip函数一般用于快速构建字典
list1 = ["王语嫣","鱼玄机","黄烨幸","刘十九",]
tuple1 = ("天龙八部","雪中悍刀行","暇木","白居易")a = zip(list1,tuple1)
#a是一个内存地址 无法直接查看可以转列表看到
b = dict(a)
print(b){'王语嫣': '天龙八部', '鱼玄机': '雪中悍刀行', '黄烨幸': '暇木', '刘十九': '白居易'}

字典推导式


res = {key:value for key,value in zip(
["王语嫣","鱼玄机","黄烨幸","刘十九",],
("天龙八部","雪中悍刀行","暇木","白居易"))
}
print(res)   {'王语嫣': '天龙八部', '鱼玄机': '雪中悍刀行', '黄烨幸': '暇木', '刘十九': '白居易'}
会发现和上面一样

问题1快速颠倒字典的键值

实现
快速颠倒字典的键值d1 = {"name":"tom","age":20}推导式过程
print({value:key for key,value in d1.items()})
结果为{'tom': 'name', 20: 'age'}非推导式过程
d2 = {}
for key in d1:d2[d1[key]]=key
print(d2)

获取每个字符在字符串中出现的次数

s1 = "insdd....."
推导式过程
res = {ch:s1.count(ch) for ch in set(s1)}
print(res)非推导式过程
d2 = {}
for key in s1:d2[key] = s1.count(key)
print(d2)

dict个人笔记——Python相关推荐

  1. LEETCODE-刷题个人笔记 Python(1-400)

    按tag分类,250/400的重点题目 LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本 1.Two Sum(easy) 给定一个整型数组,找出能相加起来等于一个特定目标数字 ...

  2. LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本(二)

    前面一篇由于文字太多,不给编辑,遂此篇出炉 LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本(一) DFS&BFS (262)200. Number of Islan ...

  3. 【笔记】Python学习(廖雪峰)笔记①——Python基础知识

    Python学习(廖雪峰)笔记①--Python基础知识 Python 基础知识 字符串与编码 ASCII.Unicode.UTF-8 Python字符串 格式化 使用list和tuple list( ...

  4. scrapy笔记——python的时间转换

    1 import datetime 2 GMT_FORMAT = '%M %H %d %m %w' 3 datetime.datetime.utcnow().strftime(GMT_FORMAT) ...

  5. 机器学习实战笔记(Python实现)-04-Logistic回归

    转自:机器学习实战笔记(Python实现)-04-Logistic回归 转自:简单多元线性回归(梯度下降算法与矩阵法) 转自:人工神经网络(从原理到代码) Step 01 感知器 梯度下降

  6. python字典导入mongodb_Python语言生成内嵌式字典(dict)-案例从python提取内嵌json写入mongodb...

    本文主要向大家介绍了Python语言生成内嵌式字典(dict)-案例从python提取内嵌json写入mongodb,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 从mongo查 ...

  7. Python笔记 - Python切片

    Python笔记 - Python切片 Python切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致.要创建一个已有列表的切片,通过指定切片的第一个列表元 ...

  8. python语言的33个保留字的基本含义_Python学习笔记——Python的33个保留字及其意义,python,pythone33,含义...

    Python学习笔记--Python的33个保留字及其意义,python,pythone33,含义 发表时间:2020-03-27 笔记走起 正文 序号 保留字 含义 1 and 用于表达式运算,逻辑 ...

  9. 读书笔记————Python编程快速上手

    学习笔记 文章目录 基础 整型.浮点型和字符串数据类型 字符串连接和复制 变量命名规则 `print()`函数 `input()`函数 `len()`函数 `str() float() int()`函 ...

最新文章

  1. LeetCode14.最长公共前缀 JavaScript
  2. android中Invalidate和postInvalidate的区别
  3. Thirft框架介绍
  4. 有关Spring缓存性能的更多信息
  5. 2018.9.10.Matlab实验一:熟悉Matlab开发环境
  6. 亲测 asp.net 调用 webservice返回json
  7. ASP.NET服务器控件对应的HTML标签
  8. ASP.Net的HtmlHelper和UrlHelper
  9. SFTP服务器的搭建
  10. 03单点登录CAS5.3.4集成客户端
  11. 惠普服务器关机自动重启,HP笔记本关机自动重启的解决办法
  12. 将一个文件夹下的多个目录生成txt文本,并且写入到Excel中
  13. 弘辽电商专题三:打赢店铺翻身仗,提升淘宝权重很重
  14. element ui表格标题及内容居中
  15. windows11安装方法
  16. Apple ID,APP ID,Bundle ID,iOS Certificates,iOS Provisioning Profiles各自含义以及之间的关系
  17. 大数据项目-1.安装虚拟机vm16+CentOs(七:安装vim,永久修改linux主机名,同步时间)
  18. QT 读写CSV文件
  19. Win10下安装elasticsearch6.5.0
  20. 猿团YTFramework UI框架正式发布 提高开发效率

热门文章

  1. 在线图片转文字怎么转?教你在线就能转换的方法
  2. Oracle 21c对JSON支持功能增强
  3. vue 、 在element-ui的el-table组件中 使用 el-select绑定对象时value-key的注意事项
  4. 基于Vue2全家桶的移动端AppDEMO实现
  5. Log、Rlog和Slog的区别
  6. 我 老 逛 没 有 开 挂 !
  7. 吸取“顶流”茶颜悦色“教训”,虎头局应该尽快走出长沙吗?
  8. Seaborn学习笔记(二)
  9. 大数据---MySQL基础---day1
  10. FreeMarker导出WORD/PDF,特殊字符处理