一、集合
1.1 创建集合
创建集合使⽤ {} 或 set() , 但是如果要创建空集合只能使⽤ set() ,因为 {} ⽤来创建空字典。
1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
s4 = set()
print(type(s4)) # set
s5 = {}
print(type(s5)) # dict
特点:
- 集合可以去掉重复数据;
- 集合数据是⽆序的,故不⽀持下标
1.2 集合常见的操作方法
1.2.1 增加数据
add():
#因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进⾏任何操作。
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}
update(): 追加的数据是序列
s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)
1.2.2 删除数据
remove():删除集合中的指定数据,如果数据不存在则报错
s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10) # 报错
print(s1)
discard():删除集合中的指定数据,如果数据不存在也不会报错
s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)
pop():随机删除集合中的某个数据,并返回这个数据。
s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)
1.2.3 查找数据
in:判断数据在集合序列
not in:判断数据不在集合序列
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)
二、公共操作
2.1 +
# 1. 字符串
str1 = 'aa'
str2 = 'bb'
str3 = str1 + str2
print(str3) # aabb
# 2. 列表
list1 = [1, 2]
list2 = [10, 20]
list3 = list1 + list2
print(list3) # [1, 2, 10, 20]
# 3. 元组
t1 = (1, 2)
t2 = (10, 20)
t3 = t1 + t2
print(t3) # (10, 20, 100, 200
2.1 *
# 1. 字符串
print('-' * 10) # ----------
# 2. 列表
list1 = ['hello']
print(list1 * 4) # ['hello', 'hello', 'hello', 'hello']
# 3. 元组
t1 = ('world',)
print(t1 * 4) # ('world', 'world', 'world', 'world')
2.1 in 或not in
# 1. 字符串
print('a' in 'abcd') # True
print('a' not in 'abcd') # False
# 2. 列表
list1 = ['a', 'b', 'c', 'd']
print('a' in list1) # True
print('a' not in list1) # False
# 3. 元组
t1 = ('a', 'b', 'c', 'd')
print('aa' in t1) # False
print('aa' not in t1) # True
三、公共方法
3.1 len()
# 1. 字符串
str1 = 'abcdefg'
print(len(str1)) # 7
# 2. 列表
list1 = [10, 20, 30, 40]
print(len(list1)) # 4
# 3. 元组
t1 = (10, 20, 30, 40, 50)
print(len(t1)) # 5
# 4. 集合
s1 = {10, 20, 30}
print(len(s1)) # 3
# 5. 字典
dict1 = {'name': 'Rose', 'age': 18}
print(len(dict1)) # 2
3.2 del()
# 1. 字符串
str1 = 'abcdefg'
del str1
print(str1)
# 2. 列表
list1 = [10, 20, 30, 40]
del(list1[0])
print(list1) # [20, 30, 40]
3.3 max()
# 1. 字符串
str1 = 'abcdefg'
print(max(str1)) # g
# 2. 列表
list1 = [10, 20, 30, 40]
print(max(list1)) # 40
3.4 min()
# 1. 字符串
str1 = 'abcdefg'
print(min(str1)) # a
# 2. 列表
list1 = [10, 20, 30, 40]
print(min(list1)) # 10
3.5 range()
注意:range()⽣成的序列不包含end数字。
# 1 2 3 4 5 6 7 8 9
for i in range(1, 10, 1):
print(i)
# 1 3 5 7 9
for i in range(1, 10, 2):
print(i)
# 0 1 2 3 4 5 6 7 8 9
for i in range(10):
print(i)
3.6 enumerate()
enumerate(可遍历对象, start=0)
注意:start参数⽤来设置遍历数据的下标的起始值,默认为0。
list =['a','b','c','d','e']
for i in enumerate(list):
print(i)
for key,value in enumerate(list,start=1):
print(f'{key}={value}')
四、容器类型转换
4.1 tuple()
作⽤:将某个序列转换成元组
list1 = [10, 20, 30, 40, 50, 20]
s1 = {100, 200, 300, 400, 500}
print(tuple(list1))
print(tuple(s1))
4.2 list()
作⽤:将某个序列转换成列表
t1 = ('a', 'b', 'c', 'd', 'e')
s1 = {100, 200, 300, 400, 500}
print(list(t1))
print(list(s1))
4.3 set()
作⽤:将某个序列转换成集合
list1 = [10, 20, 30, 40, 50, 20]
t1 = ('a', 'b', 'c', 'd', 'e')
print(set(list1))
print(set(t1))
注意:
- 集合可以快速完成列表去重
- 集合不⽀持下标
五、推导式
推导式写法:
# 列表推导式
[xx for xx in range()]
# 字典推导式
{xx1: xx2 for ... in ...}
# 集合推导式
{xx for xx in ...}
5.1 列表推导式
5.1.1 推导式样例
作⽤:⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。
# while循环创建列表
list=[]
i=0
while i < 10:
list.append(i)
i +=1
print(list)
# for 循环创建列表
list1 =[]
for i in range(10):
list1.append(i)
print(list1)
# 列表推导式实现
list2 = [i for i in range(10)]
print(list2)
5.1.2 带if的推导式
''' 创建0-10的偶数列表'''
# 1.range()步长实现
list1 = [i for i in range(0,10,2)]
print(list1)
# 2.if实现
list2 = [i for i in range(10) if i % 2 ==0]
print(list2)
5.1.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)]
print(list1)
5.1 字典推导式
字典推导式作⽤:快速合并列表为字典或提取字典中⽬标数据。
# 1.创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅。
dict1 = {i: i**2 for i in range(1,5)}
print(dict1) #{1:1,2:4,3:9,4:16}
# 2. 将两个列表合并为⼀个字典
list1 =['name','age','gender']
list2 = ['Tom',20,'man']
dict = {list1[i]:list2[i] for i in range(len(list1))}
print(dict)
# 3. 提取字典中⽬标数据
counts = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}
# 需求:提取上述values大于等于3的字典数据
count1 = {key:value for key ,value in counts.items() if value >=3}
print(count1)
print(type(count1))
5.1 集合推导式
'''需求:创建⼀个集合,数据为下⽅列表的2次⽅
list1 = [1, 1, 2]
'''
list5 =[1,1,2]
set1 = {i ** 2 for i in list5}
print(set1)
# 注意:集合有数据去重功能