公共操作与推导式
公共操作适用范围广要多背多用,但是要记住使用范围,推导式则是提高效率不过易出错要慎重使用。
- 公共操作不需要跟在变量后成为点函数的操作而是作用在变量前面实现的
- 公共操作后的数据如果去出需要用单独的变量接收.函数()是直接作用在变量上
- 公共操作要记住适用的类型
- 认识/操作公共操作
- del 删除 删除变量或者指定容器内数据 变量,容器里面的值
- +合并 将两个相同类型序列进行连接 字符串、列表、元组
- * 复制 将里面的数据进行复制 字符串、列表、元组
- len 查看容器的数据长度 字符串、列表、元组、字典,集合 len(变量) 和变量__len__() 效果一样的
- reversed 倒置将容器里面的数据倒置 字符串、列表、元组、字典
- 通常对列表进行倒置操作
- 对字符串倒置 显示一堆码无法看出是否倒置了 要再转成列表
- max 最大值 min 最小值 求容器数据的最大最小值 字符串、列表、元组、字典,集合 数字正常分清 单词根据ASCII码来排序大小
- sum 求和 将容器的数据求和 列表、元组、字典,集合 字典是对key 求和
- enumerate 索引映射 给序列加上索引
- 正常循环打印列表里的数据是没有索引的
- 提取出索引
- 显示的是ASCII码,需要转换成列表形式后发现已经把索引加上了(循环中加不加list,显示都一样)
- 拆包把循环中索引和值提取出来
- 如果索引不想从0开始,start = 开始的索引值
- 要对输出变量的开始进行调整
- 在打印时索引+数字
- in not 是否存在容器内 判断数据是否存在于容器内 字符串、列表、元组、字典,集合
- 容器类型的转换
-
列表list() 元组tuple() 集合set() 转换成集合的时候要注意去重功能
-
所有数据类型都可以转换为字符串 可以使用for循环正常输出,也可以用推导式 输出 不用range 用in 也可以
-
推导式的实际应用
- 写法差异
- 普通写法 list_data = []
for i in range(10):
list_data.append(i)
print(list_data ) - 推导式写法
list_data = [i for i in range(10)]
print(list_data ) - 推导式优缺点
优点:简洁 有点代码变少了 运行速度变快
缺点:可读性变差
- 普通写法 list_data = []
-
推导式方法
- 创建推导式过程:1、创建列表 2、循环数据 3、添加数据 4、没有其他操作
- 组成:1、主体 for循环 2、类型 :列表,元组,集合等 3、返回数据
- 顺序
- 写的时候先写循环,再加上类型,最后把要输出的变量写在类型的前面
- for循环内的i是用来循环的,最前面的i是把后面循环输出的数据加在输出数据的变量i上
- 列表推导式
对前面的i变量调整,就是循环后输出的数值再根据整体要求再调整。类型是列表。
- 字典推导式
循环和类型的写法都列表一样,就是返回数据的形式要和字典的类型一样
- 字典推导式和if一起使用
返回的数值要在输出变量中调整好,也可以用拆包的形式表示
- 集合推导式
集合的推导式和字典一样,唯一不同的输出数据的形式,一个数据是集合,有冒号,是键值对形式是字典
- 三元表达式
- 表达形式
- 一元表达:一个操作符操作一个对象 例如:-1
- 二元表达:一个操作符操作两个对象 例如:1+1
- 三元表达:if表达式
if 条件
运行1
else:
运行2
- 输出方式
- 运行1写在判断语句前面 运行2写在判断语句后面
- 当运行的语句能直接输出时,运行直接写在条件的前后,当变量改为输入时,需要根据循环的内容,设置对应的变量类型
- 当运行的语句能不能直接输出时
- 就是说最后输出变量只有一个通用表达式时.
- 推导式就是一个整体,是一个返回值
- 需要一个变量接受结果,然后在输出变量即可。
- 列表推导式和三元表达式一起使用
- 三元表达式要写在for循环的前面
- 常规使用思路
- 还是先把循环和类型写好
- 要把三元内容写在输出数据和循环之间(如果把会报错三运表达式写在循环后)
- 三元表达式的内容逻辑,应该是if else放中间输出结果放两边的模式
- 输出的结果不是i而是一个值,所以最终表达式应该用三元取代i
- 而要判断输出的类型是什么,要输出数据的格式进行调整
- 最后直接打印或者用变量再打印
- 嵌套三元形式
- 但是不建议用,过于复杂,不容易读写
- 加入嵌套三元后 要把推导式中else内容替换