2026-04-08 打卡第 5 天

复制代码
# 2026-04-08 打卡第 5 天
# 集合交集 &,共有,没有共有部分返回空集合
'''
s1 = {1,2,3,4}
s2 = {2,4,5,6}
print(s1 & s2)
# 输出结果:{2, 4}
'''

# 集合并集 |,全部
'''
s1 = {1,2,3,4}
s2 = {2,4,5,6}
print(s1 | s2)
# 输出结果:{1, 2, 3, 4, 5, 6}
'''

# ----------
# 类型转换
# int() 转换为整型,只能转换纯数字组成的字符串
# 浮点型强制转整型,只保留整数部分,小数点后面不取
'''
a = 1.2
print(int(a))
# 输出结果:1
'''

# float() 转换为浮点型
'''
a = 10
print(float(a))
# 输出结果:10.0
'''

# str() 转换为字符串类型,任何类型都可以转换为字符串类型
'''
a = 10
s = str(a)
print(s,type(s))
# 输出结果:10 <class 'str'>
'''

# eval() 执行运算并返回运算值,可以实现列表、字典、元组和str的转换,去除引号
'''
print(10 + 10)
# 输出结果:20
print(eval('10+10'))
# 输出结果:20
'''
'''
li = '[1,2,3,4]'
print(li,type(li))
print(eval(li))
# 输出结果:[1,2,3,4] <class 'str'>
# [1, 2, 3, 4]
'''

# list() 将可迭代对象转换列表,str、元组、字典、集合转换为列表
'''
tu = (1,2,3,4)
print(tu,type(tu))
tu1 = list(tu)
print(tu1,type(tu1))
# 输出结果:(1, 2, 3, 4) <class 'tuple'>
# [1, 2, 3, 4] <class 'list'>
'''

# 深浅拷贝
# 赋值,数据共享
'''
li = [1,2,3,4]
print(li)
li2 = li
print(li2)
li.append(5)
li3 = li2
print(li,li2,li3)
# 输出结果:[1, 2, 3, 4]
# [1, 2, 3, 4]
# [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
'''

# 浅拷贝,数据半共享,会创建新的对象,拷贝第一层数据,外层地址不同,嵌套层会指向原来的内存地址,内层地址相同
# 需要导入import copy
# 优点:拷贝速度快,效率高,占用空间少
'''
import copy
li = [1,2,3,[4,5,6]]
# 查看内存地址:id(),内存地址不一样,说明不是同一个对象
print(li,"内存地址:" , id(li))
li2 = copy.copy(li)
print(li2,"内存地址:" , id(li2))
# 外层新增元素
li.append(8)
print(li,"内存地址:" , id(li))
print(li2,"内存地址:" , id(li2))
# 嵌套层新增元素
li[3].append(7)
print(li,"内存地址:" , id(li[3]))
print(li2,"内存地址:" , id(li2[3]))
# 输出结果:[1, 2, 3, [4, 5, 6]] 内存地址: 2309276284480
# [1, 2, 3, [4, 5, 6], 8] 内存地址: 2309276270528
# [1, 2, 3, [4, 5, 6]] 内存地址: 2309276284480
# [1, 2, 3, [4, 5, 6, 7], 8] 内存地址: 2309273681984
# [1, 2, 3, [4, 5, 6, 7]] 内存地址: 2309273681984
'''

# 深拷贝,数据完全不共享,外层的对象和内部的元素都拷贝一遍,只影响自己本身,跟原来对象没关系
# 需要导入模块,import copy
'''
import copy
li = [1,2,3,[4,5,6]]
li2 = copy.deepcopy(li)
print(li,"内存地址:" , id(li))
print(li2,"内存地址:" , id(li2))
# 外层新增元素
li.append(8)
print(li,"内存地址:" , id(li))
print(li2,"内存地址:" , id(li2))
# 嵌套层新增元素
li[3].append(7)
print(li,"内存地址:" , id(li))
print(li2,"内存地址:" , id(li2))
# 输出结果:[1, 2, 3, [4, 5, 6]] 内存地址: 2110459982208
# [1, 2, 3, [4, 5, 6]] 内存地址: 2110459967872
# [1, 2, 3, [4, 5, 6], 8] 内存地址: 2110459982208
# [1, 2, 3, [4, 5, 6]] 内存地址: 2110459967872
# [1, 2, 3, [4, 5, 6, 7], 8] 内存地址: 2110459982208
# [1, 2, 3, [4, 5, 6]] 内存地址: 2110459967872
'''
相关推荐
游乐码2 小时前
c#ArrayList
开发语言·c#
C+++Python2 小时前
Python MCP Server 最简实现
开发语言·python
一个人旅程~2 小时前
旧笔记本电脑安装win10精简版LTSB&win10LTSC&linuxmint作为三系统的操作指导书(以DELL n4020为例)
linux·windows·经验分享·电脑
MinterFusion2 小时前
如何在openKylin 2.0 SP2中安装Qt(v0.2.2)(上)
开发语言·qt·软件开发·系统维护·明德融创·openkylin
zhuhezhang2 小时前
一个用python开发的文本对比工具
python·文本对比工具
智算菩萨2 小时前
【Python图像处理】5 Pillow图像处理与格式转换
图像处理·python·pillow
开开心心就好2 小时前
支持自定义名单的实用随机抽签工具
windows·计算机视觉·计算机外设·excel·散列表·启发式算法·csdn开发云
前端小D2 小时前
JS模块化
开发语言·前端·javascript
无限码力2 小时前
华为OD技术面真题 - JAVA开发- spring框架 - 7
java·开发语言·华为od·华为od面试真题·华为odjava八股文·华为odjava开发题目·华为odjava开发高频题目