python基础【第八篇】

day06笔记

1.小数据池

is 与 ==的区别

​ is :判断两边的内存地址是否相同

​ ==:判断两边的值是否相同

python中的驻留机制:
     数字: -5 ~ 256
     字符串: 3.6 乘法时总长度不能超过20
python中的代码块:
     数字: -5 ~ 正无穷
     字符串: 3.6 乘法时总长度不能超过20

2.深浅拷贝

浅拷贝遇见可变数据类型的时候,具有联动效应
深拷贝遇见可变数据类型的时候,不具有联动效应

浅拷贝:只拷贝第一层的内存地址

示例

dic = {1:2,2:[]}
dic1 = dic.copy()
dic[2]=4
print(dic)
print(dic1)
dic = {1:2,2:[]}
dic1 = dic.copy()
dic[2].append(9)
print(dic)
print(dic1)

深拷贝:不管嵌套多少层,不可变数据类型公用,可变数据类型开辟新的内存空间**

示例

import copy
lst = [1,2,3,[6,7,8,9]]
lst2 = copy.deepcopy(lst)
lst[1]=10
lst[-1].append(6)
print(lst)
print(lst2)

赋值 : 多个变量名指定同一个内存地址就是赋值

3.集合

集合相当于一个没有值得字典

集合的特性:天然去重

集合是无序的可变的

集合的基本操作方法:

s = {1,2,3,4}
# 增
s.add(5)
print(s)
s.update(["1","2","3"]) # 迭代更新
print(s)
# 删
s.remove(1)
print(s)
print(s.pop())  #删除第一个值
print(s)
s.clear()      # 清空
print(s)
# 改
先删后加
数据转换
# 查  
利用for循环
# 其他操作
交集 &
并集 |
差集 -
反交集 ^
超集 >
子集 <
v1 = {'呵呵','123','板哥','王二麻子'}
v2 = {'123','王二麻子'}
print(v1 & v2)
print(v1 | v2)
print(v1 - v2)
print(v2 - v1)

练习题

# 从随机的36个数中,抽选7个不重复的数字
from random import randint
ls = []
while len(ls) < 7:
    s = randint(1, 36)
    if s not in ls:
        ls.append(s)
print(ls)

from random import randint
s = set()
while len(s) < 7:
    s.add(randint(1, 36))
print(s)

原文地址:https://www.cnblogs.com/tianming66/p/11729448.html