一,变量
变量作用是记录状态
1,变量基本类型
字符串
数字
列表
元组
字典
2,可变不可变
1),可变:修改变量的值,id值不变。列表,字典
2),不可变:新建立变量后需要开辟新内存地址。字符串,数字,元组
3,访问顺序
1),顺序:字符串,列表,元组
2),映射:字典
3),直接:数字
4,存放元素个数
容器类型:列表,元组,字典
原子:数字,字符串
二,新类型:集合
集合出现之前
python_l = ['lcg','szw','zjw'] linux_l = ['lcg','szw','sb'] #循环方法求交集 python_and_linux_l = [] for p_name in python_l: if p_name in linux_l: python_and_linux_l.append(p_name) print(python_and_linux_l)
特点:
1,不同元素组成
2,无序
3,集合中的元素必须是不可变类型:数字,字符串,元组
4,集合本身是可变类型,可以追加和删除元素。注意:使用frozenset('hello')把集合定义成不可变类型
s = frozenset('hello') print(s)
形式:
s = {1,2,3,4,5,6} s = set("hello") # s={'e','o','h','l'} s = set(['alex','alex','sb']) # s={'sb','alex'}
用途:删除重复值
names = ['alex', 'alex','wupeiqi'] s = set(names) print(s) names = list(s) print(names)
输出:
{'wupeiqi', 'alex'}
['wupeiqi', 'alex']
内置方法:
s = {1,2,3,4,5,6}
1,s.add(7)
2,s.clear()
3,s1 = s.copy()
4,s.pop() #无序的集合,随机删除
5,s.remove('sb')
如果不存在,会报错
6,s.discard('sbb')
如果不存在,不会报错
7,求交集,同时报了两门课程的人
python_l = ['lcg','szw','zjw'] linux_l = ['lcg','szw','sb']
p_s = set(python_l) l_s = set(linux_l) print(p_s,l_s) print(p_s.intersection(l_s)) print(p_s&l_s)
8,求并集,所有人的集合
print(p_s.union(l_s)) print(p_s|l_s)
9,求差集,报了python没有报linux的人
print('差集',p_s - l_s) print('差集',p_s.difference(l_s))
10,交叉补集,合到一块,扣掉共同的部分,只报了一门课程的人,可能是python,也可能是linux
print('交叉补集',p_s.symmetric_difference(l_s)) print('交叉补集',p_s^l_s)
11,求差集后更新
p_s.difference_update(l_s) #相当于 p_s = p_s - l_s print(p_s)
12,如果没有交集则为TRUE
s1 = {1,2} s2 = {1,2,3,5} print(s1.isdisjoint(s2)) #False
13,父集与子集
print(s1.issubset(s2)) #True S1是S2的子集 print(s2.issuperset(s1)) #True S2是S1的父集
14,update可以更新(添加)多个值
s1 = {1,2} s2 = {1,2,3,5} #s1.update(s2) s1.update([3,4]) s2.add(4) #add只能更新一个值 print(s1,s2)