前面小节:
sep 用来控制每个元素间的间隔符号
print("alex", "dabai", "liu", sep = "")
按可变不可变:
1.可变:列表,字典
2.不可变:字符串, 数字, 元组
修改了变量的值,而id号跟着改变,即不可变类型
name = 'alex' print(id(name)) name = 'sb' print(id(name))
按访问顺序:
1.顺序访问:字符串, 列表, 元组
2.映射:字典
3.直接访问:数字
存放元素个数:
容器类型:列表,元组, 字典
原子:数字,字符串
#################集合 ###################
一、集合 set
1.不同的元素组成
2.无序
3.集合中元素必须是不可变类型
s = {1, 2, 3, 4, 5}
内置函数:set() 也有简单的去重作用,不在意顺序的话
s = set('hello') print(s) s1 = set(["alex", "alex", "sb"]) print(s1)
二、集合的魔法
1. add, 向集合添加元素(只能更新一个)
s = {1, 2, 3, 4, 5, 6} s.add('alex') print(s)
2. clear 清空集合
s.clear()
3. 拷贝集合
s1 = s.copy()
4. pop随机删除元素
s = {1, 2, 3, 4, 5, 6} v = s.pop() print(s,v)
5. remove 指定元素删除,删除元素不存在时会报错
s = {1, 2, 3, 4, 5, 6} s.remove(3) print(s)
6. discard 指定元素删除,但是要删的元素不存在也不会报错
s = {1, 2, 3, 4, 5, 6} s.discard(5) print(s)
7. 交集
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1.intersection(s2) print(n)
或者:&
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1 & s2 print(n)
8. 并集
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1.union(s2) print(n)
或者:|
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1 | s2 print(n)
9.求差集(s1 中有而s2中没有)
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1.difference(s2) print(n)
或者:-
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1 - s2 print(n)
10.交叉补集(s1 和 s2 的全部,减去两者的交集)
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1.symmetric_difference(s2) print(n)
或者 ^
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} n = s1 ^ s2 print(n)
11.更新差集
s1 = {1, 2, 3} s2 = {2, 3, 4, 6} s1.difference_update(s2) s1 = s1 - s2 print(s1) print(s1)
12. s1 是否是s2的子集
s1 = {1, 2, 3} s2 = {1, 2, 3, 4, 6} n = s1.issubset(s2) print(n)
13. s2是否是s1的父集
s1 = {1, 2, 3} s2 = {1, 2, 3, 4, 6} n = s2.issuperset(s1) print(n)
14. 更新多个值,参数可以是列表、元组等
s1 = {1, 2, 3} s2 = {1, 2, 3, 4, 6} s1.update(s2) print(s1)
15. 定义一个不可变的集合(不能增删改)
s = frozenset("hello dabai") print(s)