小数据池 is id 集合增删查
小数据池
小数据池。int str 在一定范围内,如果两个数值相同,为了节省内存,共用一个内存地址。
int : -5 ~ 256
str : 1,有非字母元素就不是小数据池。
2, 单个字母* int(21)存在小数据池。
剩下的类型 都不存在。
is
判断两个变量内存地址是否一致
id
变量的内存地址
集合set
用 {} 括起来的元素就是集合, set()代表空集合。 集合是无序的!!!!!!!!!!!
增
set1 = {'alex', 'WuSir', 'RiTiAn', 'egon', 'barry'}
set1.add('太白') # 无序添加
print(set1)
set1.update('abc') # 类似于 extend 迭代添加
set1.update([111, 2222, 333])
print(set1)
删
#remove按元素删除 set1.remove('RiTiAn') print(set1) #随机删除,有返回值 pop print(set1.pop()) print(set1) #清空clear set1.clear() print(set1) #删除整体 del del set1 print(set1)
查
set1 = {'alex', 'WuSir', 'RiTiAn', 'egon', 'barry'} for i in set1: print(i)
交集 & intersetion
set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8}
set3 = set1 & set2 print(set3) print(set1.intersection(set2))
并集 | union
set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} print(set1 | set2) print(set1.union(set2))
差集 - difference
set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} print(set1 - set2) # set1 独有 print(set2.difference(set1)) # set2 独有
反交集 ^ symmetric_difference
set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} print(set1 ^ set2) print(set1.symmetric_difference(set2))
子集 超集
set1 = {1, 2, 3} set2 = {1, 2, 3, 4, 5, 6} print(set1 < set2) # True set1 是set2的子集 print(set1.issubset(set2)) # True set1 是set2的子集 print(set2 > set1) # True set2 是set1的超集 print(set2.issuperset(set1)) # True set2 是set1的超集