一、运算符
运算符 | 描述 | 支持的容器类型 |
---|---|---|
+ | 合并 | 字符串、列表、元组 |
* | 复制 | 字符串、列表、元组 |
in | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 元素是否不存在 | 字符串、列表、元组、字典 |
二、公共方法
函数 | 描述 |
---|---|
len() | 计算容器中元素个数 |
del 或 del() | 删除(第一种是 后面空格;第二种是小括号) |
max() | 返回容器中元素最大值 |
min() | 返回容器中元素最小值 |
range(start,end,step) | 生成从start到end的数字,步长为step,供for循环使用 |
enumerate(可遍历对象,start=0【下标起始值】) | 函数用于讲一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下表,一般用在for循环当中。结果返回的是一个数组 |
注意:range()生成的序列不包含end数字
三 容器类型转换
1、tuple() :将某个序列转换成元组
2、list() :将某个序列转换成列表
3、set() :将某个序列转换成集合;
注意:①集合可以快速完成去重功能;②集合不支持下标
四、列表推导式
4.1 循环列表推导式
- while循环创建有规律的列表
作用:一个表达式创建一个有规律的列表或控制一个有规律列表。
列表推导式又叫列表生成式。
list1=[]
i=0
while i<10:
list1.append(i)
i +=1
print(list1)
- for循环创建有规律的列表
list=[]
for i in range(10):
list1.append(i)
print(list1)
### list1=[i for i in range(10)]
- 体验列表推导式
list1=[i for i in range(10)]
4.2 if 循环列表推导式
需求:0-10偶数数据的列表
- 方法一:range()步长实现
list1 =[i for i in range(0,10,2)]
- 方法二:if 实现
list2 =[i for i in range(10) if i %2 == 0]
4.3 多个 for 循环实现列表推导式
需求:列表如下
[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
- 代码如下:
list1 =[(i,j) for i in range(1,3) for j in range(3)]
list1=[]
for i in range(1,3):
for j in range(3):
# 列表里面追加元组,循环准备一个空列表,然后这里追加元组数据到列表
list1.append(i,j)
# 多个for的列表推导式等同于for循环嵌套
五、字典推导式
字典推导式作用:快速合并列表为字典或提取字典中目标数据。
5.1 体验
- 创建一个字典:字典key是1-5的数字,value是这个数字的2的次方。
dic1 ={i:i**2 for i in range(1,5)}
5.2 将两个列表合并为一个字典
list1=['name','age','gender']
list2 =['Tom',20,'man']
dic1={list1[i]:list2[i] for i in range(len(list1))}
5.3 提取字典中目标数据
counts = {'MBP':268,'HP':125,'DELL':201,'Lenovo':199,'acer':99}
# 需求:提取上述电脑数量大于等于200的字典数据
count1 = {key:value for key,value in counts.items() if value >= 200}
六、 集合推导式
需求:创建一个集合,数据为下方列表的2次方
list1=[1,1,2]
set1 ={i ** 2 for i in list1}
print(set1) #{1,4}
注意:集合有数据去重功能。因此上述例子 结果只有两个数据
总结:
- 推导式的作用:简化代码
- 推导式写法
# 列表推导式
[xx for xx in range()]
# 字典推导式
{xx1:xx2 for ... in ...}
#集合推导式
{xx for xx in ...}