== 和is 的区别
- 是判断两边的值是否相同
- is是判断is 两边的内存地址是否相同
a = 10
b = 10
print(a == b) True
a = 10
b = 10
print(a is b) True
小数据池与代码块
小数据池与代码块的驻留机制的优点:节省空间,提高效率
优先级:满足条件下先用代码块,如不满足再用小数据池
小数据池的有效范围:
int -5~256
str 字符串相乘总超度不能超过20 3.6版本20,3.7版本4096
代码块的有效范围:
int -5~正无穷
str 字符串相乘总超度不能超过20 3.6版本20,3.7版本4096
深浅拷贝和赋值
浅拷贝只拷贝第一层数据。
示例:
lst = [1,2,3,[4,5],6]
lst1 = lst.copy
lst[0] = 5 把1修改成5,lst1内容不变
lst[3].append(6) 在4,5列表中添加一个6,lst1也会跟着改变
深拷贝不管嵌套多少层,不可变数据共用,可变数据开辟新空间。
示例:
lst = [1,2,3,[4,5],6]
lst1 = lst.copy
lst[0] = 5
lst[3].append(6) 在4,5列表中添加一个6,lst1不会跟着改变
赋值:
赋值就是一串数据有两个标签。
集合
集合是无序的
集合天然去重
集合里面不能放列表,可以放元组
集合的增删改查
增:
s = {1,2,3,4,5}
s.add(6) 在5后面添加6
s.update()只能添加可迭代对象(数字不行)
删:
s = {1,2,3,4,5}
s.pop() 删除第一个数(1)
s.remove(3) 指定元素删除,列表内3将被删除
s.clear 清空整个列表,清空后是一个空集合set()
del s 这个是直接删除s这个集合,print(s)是报错的,因为已经删除了
改:
s = {1,2,3,4,5}
1.先删再添加
2.数据转换
查:
for循环查
s = {1,2,3,4,5}
for i in s:
print(i)
集合的其他操作
#s1 = {1,2,3,(4,5,6)}
#s2 = {1,2,3,4,5,(1,2,3)}
# print(s1 | s2) 并集 一样的去重,不一样的保留
# print(s1 & s2) 交集 一样的保留,不一样的去除
# print(s1 ^ s2) 补集 相同的删除,不相同的保留
# print(s2 > s1) 超集 就是s2里面有s1的数据就是超集,返回True
# print(s1 < s2) #子集 就是s1的内容在s2内就是子集,返回False
# print(s1 - s2) 差集 用s1里的内容减s2的内容,相同就删除,不相同就保留
# print(s2 - s1) 差集 用s2里的内容减s1的内容,相同就删除,不相同就保留