07 Python之字典和集合
1. 什么是字典
字典是用{}表示,以key:value的形式来保存数据的,其查找效率比较高
坑:
字典存储数据时是用哈希值来存储的,算法不能变(python的)
数据必须是可哈希的(不可变的),字典中的key必须是可哈希的(不可变的)
dic = {"jay":"周杰伦", "jj": "林俊杰", "jolin":"蔡依林"}
print(dic['jay']) # 周杰伦
dic['jay'] = "麻花藤"
print(dic)#{'jay': '麻花藤', 'jj': '林俊杰', 'jolin': '蔡依林'}
2. 字典的增删改查
1. 添加
dic[新key] = 值
dic = {"意大利": "李云龙", "美国": "美国往事"}
dic["日本"] = "东京审判" # 新key表示添加
dic['韩国'] = "釜山行"
print(dic)#{'意大利': '李云龙', '美国': '美国往事', '日本': '东京审判', '韩国': '釜山行'}
setdefault()
有添加功能,dic.setdefault("key","value")
如果key是存在的则不添加.
流程:判断你给的key是否存在于字典中,如果存在不添加.如果不存在,执行新增的操作.
2. 删除
pop(key)
dic = {"张艺谋":"红高粱", "李安":"断臂山", "陈凯歌":"霸王别姬", "郭德纲":"祖宗十九代"}
dic.pop("郭德纲") # pop(key) 删除郭德纲
dic.popitem() # 随机删除一项. 在python早期版本 字典是无序的.
del dic["李安"] del dic["key"] 删除指定一项
dic.clear() 清空
3. 修改
dic[老key] = 值
dic = {"jay":"周杰伦", "jj": "林俊杰", "jolin":"蔡依林"}
dic['jay'] = "麻花藤"
print(dic)#{'jay': '麻花藤', 'jj': '林俊杰', 'jolin': '蔡依林'}
update() 更新字典
dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
dic2 = {"赵四":"宝宝", "刘能":"萌萌", "皮校长":"皮长山"} dic1.update(dic2) # 把dic2怼到dic1里面. 把dict2中的内容更新到dic1
print(dic1)
print(dic2)
#{'赵四': '宝宝', '刘能': '萌萌', '王木生': '范伟', '皮校长': '皮长山'}
#{'赵四': '宝宝', '刘能': '萌萌', '皮校长': '皮长山'}
4. 查询
dic[key] 直接使用key获得value,如果key不存在则报错
get(key, 值) dic.get(key,值) 如果输入没有的key则会返回值 如果没有值 则返回默认的None
setdefault(key, value)
#第一个功能是添加(当key不存在). 第二个功能是查询(根据你给的key查询)
# 整个执行流程: 判断给的key是否存在. 如果存在. 就不执行新增流程.直接查询出这个key对
#应的value
# 如果key不存在. 先执行新增操作. 再使用key把对应的value查询出来
dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
ret = dic1.setdefault("皮长山", "皮校长")
print(ret) # 皮校长
ret = dic1.setdefault("王木生", "宝宝")
print(ret) # 范伟
5. 遍历,字典是一个可迭代对象
dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
# 1. 使用for循环直接遍历字典的key
for key in dic:
print(key)
print(dic[key]) # 2. 可以使用字典的items()+解构可以直接获取到key和value
for k, v in dic.items():
print(k)
print(v)
3. 字典的相关操作
1. keys() 获取到所有的键
2. values() 获取到所有的值
3. items() 拿到所有的键值对
for k, v in dic.items(): # 遍历字典最简单的方案
# print(item) # ('赵四', '刘晓光')
# k, v = item # 解构
# k = item[0]
# v = item[1]
print(k, v)
4. 字典的嵌套
字典的嵌套. 字典套字典
5. 集合(不重要). 去重复
集合中的元素是不重复的. 必须是可哈希的(不可变), 字典中的key
空集合:set()
空元组:tuple()
空列表:list()
非空集合: {123}集合, 集合其实就是不存value的字典
07 Python之字典和集合的更多相关文章
- Python中字典和集合
Python中字典和集合 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元 ...
- Python中字典和集合的用法
本人开始学习python 希望能够慢慢的记录下去 写下来只是为了害怕自己忘记. python中的字典和其他语言一样 也是key-value的形式 利用空间换时间 可以进行快速的查找 key 是唯一的 ...
- python学习——字典和集合
一.字典 1)字典介绍 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种不可变的结构类型也称之为映射.字典类型是Python中唯一內建的映射类型. 1)字典操作 &qu ...
- 012.Python的字典和集合的相关函数
一 字典的相关函数 1.1 增函数 dictvar = {"a":1,"b":2} dictvar["c"] = 3 print(dictv ...
- Python中字典,集合和元组函数总结
## 字典的所有方法- 内置方法 - 1 cmp(dict1, dict2) 比较两个字典元素. - 2 len(dict) 计算字典元素个数,即键的总数. - 3 str(dict) 输出字典可打印 ...
- 流畅的python 字典和集合
介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...
- 【学习笔记】第五章 python3核心技术与实践--字典和集合
[第四章]思考题的答案,仅供参考: []比list()更快,因为调用了list函数有一定的时间,而[]却没有. 前面我们学习了 Python 中的列表和元组,了解了他们的基本操作和性能比较.这节章,我 ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- python基础知识3——基本的数据类型2——列表,元组,字典,集合
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...
随机推荐
- 查看HearthBuddy.exe文件是x86还是x64版本
https://www.cnblogs.com/chucklu/p/10020221.html 使用Powershell查看 PS C:\repository\GitHub\ChuckLu\Test\ ...
- 构建 JVM(HotSpot) 源码调试环境(OpenJDK8)
原本想在 Windows 下编译调试,但过程中遇到了诸多错误(老是报路径错误...),最后只好放弃. 此次记录调试的方法为 CentOS7 上编译,Windows 上使用 Clion 远程调试(也可直 ...
- [String.Format(转换时间格式)]
string.Format("{0:d}", System.DateTime.Now); // 2017/6/2; string.Format("{0:D}" ...
- H5 页面适配几种展现形式
1.contain 模式:以内容中心为基点按照视觉稿的宽高比缩放以适配窗口显示全页面内容,窗口与内容的宽度比或高度比之间较小者缩放填满窗口,当窗口宽高比和视觉稿不同时,另一方向的两侧出现留空部分. 2 ...
- Tooltip 文字提示
常用于展示鼠标 hover 时的提示信息. 基础用法 在这里我们提供 9 种不同方向的展示方式,可以通过以下完整示例来理解,选择你要的效果. 使用content属性来决定hover时的提示信息.由pl ...
- Python re 正则表达式【一】【转】
数量词的贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符:非贪婪的则相反,总是尝试匹配尽 ...
- EUREKA 删除 or 强制下线/上线 实例
开发环境,EUREKA 注册中心 某服务被注册了多个实例,feign 调用时 服务请求到其他实例上,请求收不到,使用一下命令删除 或者强制下线实例: 1 .DELETE 删除注册实例,但是如果被删除 ...
- [Python]机器学习:Tensorflow实现线性回归
源码 #> tutorial:https://www.cnblogs.com/xianhan/p/9090426.html # 步骤一:构建模型 # 1.TensorFlow 中的线性模型 ## ...
- jmeter响应数据中文乱码处理
1.在jmeter的bin目录下找到 jmeter.properties 文件并打开 2.搜索关键字 “default.encoding”,将1084行(以搜索到的位置为准)改成下图所示:samp ...
- Ubuntu 16.04安装anaconda3
首先下载anaconda3镜像,清华大学开源软件镜像站下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 因为实验需要用到tenso ...