Python_组合数据类型_进阶_推导式_元组_字典_集合_练习(5)
目录:
- 一、列表
- 1、列表推导式的基本格式
- 2、执行流程
- 2、推导练习
- 二、元组
- 1、元组的基本格式
- 2、访问元组
- 3、元组的合并和重复
- 4、访问多维元组
- 5、使用多个变量接受元组中的值
- 6、修改元组
- 7、元组一个逗号的魅力
- 8、tuple()函数
- 9、元组中的方法
- 10、遍历元组、元组中的方法
- 11、元组的应用场景
- 三、字典
- 1、什么是字典
- 2、创建字典的两种方式
- 3、字典的方法
- 4、字典的常见操作
- 四、集合
- 1、什么是集合
- 2、集合的操作(增删改查)
- 3、集合的数学运算
- 4、集合的运用场景
整理不易,各位看官,点个赞收藏、关注必回关、QAQ、您的点赞是我更新的最大动力!
1. 推导式定义 |
---|
推导式,就是设置了一定条件的一个 Python 表达式,可以根据表达式自动推导生成对应 的 Python 对象 通常情况下根据生成对象的不同 推导式区分为: 列表推导式,集合推导式,字典推导式 |
2.为什么要用推导式 |
---|
推导式可以包含基本的处理条件和循环结构,并且可以让循环结构进行嵌套完成浮渣的操作,能在代码的语法上对原来繁琐的代码进行优化,同时提高了代码的可读性,所以我们使用推导式 |
3.什么时候用推导式 |
---|
如果按照条件生存少量数据的列表/集合/字典,可以使用推导式进行操作,将数据生成后再程序的变量中,但是一旦涉及到大量数据操作的时候-禁止使用 |
一、列表
- 列表推导式(list comprehension)是利用其它类表创建新列表的一种方式
- 工作原理类似 for 循环,可对得到的元素进行转换或者筛选
1、列表推导式的基本格式
- 变量名=[表达式 for 变量 in 列表] 或者
- 变量名= [表达式 for 变量 in 列表 if 条件]
2、执行流程
- 遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算
或者遍历列表中的内容给变量,然后进行判断,符合的值在给表达式
3、推导练习
练习1:将 lst 中每一个元素进行平方后放入到一个新列表中
lst = [1, 2, 3, 4, 5]
第一种方式:
第二种方式:使用 函数
练习 2.求出 lst 中是奇数的值,然后放入到一个新列表中
练习 3.求列表中所有大于 2 的偶数进行平方计算
练习 4.将一个嵌套列表转换成一个一维列表
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
转换成:lst2=[1, 2, 3, 4, 5, 6, 7, 8, 9]
使用列表推导式
使用普通嵌套 for 循环
练习 5:现在有一列表 lst = [[1,2,3],[4,5,6],[7,8,9]]要求出 1/4/7 和 1/5/9 元素,思考如何取 出
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
使用 for 循环
#1,4,7
#1,5,9
使用列表推导式
二、元组
1、元组的基本格式
- 元组是一个不可修改的,元素以逗号分隔的以小括号包围的有序序列
- 格式: 变量名 = (元素1、元素2、…)
练习:创建元组并打印元组内容和类型
2、访问元组
访问元组和访问列表一样,都可以使用索引和切片来获取元素
练习1:通过索引获取‘ls’元素
练习2:使用for循环获取所有元素
练习3:使用切片获取(‘ls’,’zs’)子元组
3、元组的合并和重复
因为元组也是有序的序列,因此支持合并“+”和重复“*”
4、访问多维元组
多维元组:元组中的元素还是元组
练习:获取元组中的‘张飞’元素
5、使用多个变量接受元组中的值
格式: 变量 1,变量 2,…=(元素 1,元素 2,…)
6、修改元组
说明:Python 中不允许修改元组的数据,包括不能删除其中的元素 如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变
7、元组一个逗号的魅力
如果元组中只有一个值,如果没有逗号,变量的类型就是值的类型
如果有逗号,则表示元组类型
8、tuple()函数
tuple 函数的功能与 list 函数基本上一样的,以一个序列作为参数并把它转换为元组,如果参 数是元组,那么该参数就会被原样返回
9、元组中的方法
10、遍历元组、元组中的方法
遍历一维列表
遍历二维元组
enumerate()内置函数
for循环每遍历一次enumerate()函数返回一个元组(index,value),索引从0开始
11、元组的应用场景
元组用在项目中固定数据声明,如一年四季、首页菜单,宫廷游戏官位 为什么要用元组? 为了让某些数据在程序运行过程中不能修改,提升程序的稳定性
三、字典
1、什么是字典字典是项目开发过程中使用频率最高的一个组合数据类型。它用于存放具有映射关系的数据。 比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这 两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记 录两组数据之间的关联关系。为了保存具有映射关系的数据,Python 提供了字典,字典相 当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来 访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图所示:
2、创建字典的两种方式
-
2.1 使用花括号语法来创建字典
在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英 文冒号隔开;多个 key-value 对之间用英文逗号隔开 如下代码示范了使用花括号语法创建字典: -
2.2 使用系统内置的 dict()创建字典
dict()内置函数可以创建一个空字典、或者通过列表+元组的形式或者元组+元组形式创建一 个字典,或者通过关键字来创建一个字典
Python中使用 dict表示字典,dict 要求 key 必须是不可变类型
字典的 value 值可以是任意数据类型
key 不允许重复
由于字典中的key是非常关键的数据,而且程序需要通过key来访问value,一旦字典的key重复了,相当于给这个key重新赋值
应用场景:
当保存一些事物的信息的时候我看可以使用字典格式,例如用户的信息 练习:创建一个字段保存个人信息,并且打印个人信息和变量类型
3、字典的方法(增删改查)
- 3.1 增加操作
方法 | 描述 |
---|---|
变量名[key]=value | 通过key添加value值,如果key存在则覆盖 |
setdefault(key,default_value) | 指定key和value,如果key存在则不覆盖 |
- 3.2删除操作
方法 | 描述 |
---|---|
pop | 弹出,返回并删除指定键对应的值dict.pop(‘key’) |
popitem | 随机弹出一个键值元组,这里随机的原因是因为字典无序 |
clear | 清空字典 |
del | 删除整个字典,或者通过字典的key删除对应键值对;Python内置方法,不是字典独有的方法; |
- 3.3修改操作
方法 | 描述 |
---|---|
字典名[key]=value | 通过key添加value值,如果key存在则覆盖 |
update() | 传递一个字典,如果key相同则覆盖,没有的key则添加 |
- 3.4 查找操作
方法 | 描述 |
---|---|
根据key查找 | 通过制定的key找对应的值dict[‘key’] |
keys | 包含字典所有key的dict_keys对象,该对象可以转换为列表 |
values | 包含字典所有的value的dict_keys对象,该对象可以转换为列表 |
get | 以键取值,如果指定键不存在,默认返回None,可以指定返回内容 |
update | 以字典格式更新指定键的内容,如果键不存在,创建键和值 |
items | 返回字典键值呈元组形式的格式 |
len | 测量字典,键值对的个数(整体) |
4、字典的常见操作
四、集合
返回文章目录1、什么是集合
- 集合是盛放多个数据的一种类型。集合中的元素是无序的,唯一的、不可改变类型
- 可以使用大括号 { } 或者 set() 函数创建集合
- 格式:
(1). 变量名={元素 1,元素 2,元素 3,…}
(2). 变量名=set(序列) 例如 变量名=set(元组,自动,字符串) - 注意事项:
1.创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典 2.集合中的元素必须是不可修改类型
练习 1:创建集合并且查看内容和类型
2、集合的操作(增删改)
-
2.1 增加操作
方法: add() 和 update() -
2.2 删除操作
pop、remove、clear、del -
2.3 查询操作
3、集合的数学运算
- 1.交集(& 或者 intersection)取公共部分
- 2.并集 (| 或者 union) 取去除重复部分内容
- 3.差集 (- 或者 difference)取 set1 或者 set2 中除去公共部分的内容
- 4.反交集 (^ 或者 symmetric_difference)
- 5.子集 (< 或者 issubset)
- 6.超集 (> 或者 issuperset)
练习 1:去除列表中重复的内容
4、集合的运用的场景
由于元素在集合中只能存储一次,集合 (set) 可以用来把重复项从其他数据类型中过滤掉。 直接把其他类型 转换为一个集合 (set) ,然后再转换回来即可
笔试题:
现有如下数据 lst = [1, 1, 5, 2, 6, 10, 9, 8, 8, 9, 2, 3] 请按照自己的思路将上述列表中的数据,完成重复数据的剔除,并按照自然顺序排序展示