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
'''
相关推荐
不正经学生1 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技2 小时前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
恋恋西风4 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
Brilliantwxx4 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
BizzZ_5 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_5 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
geovindu6 小时前
CSharp: 万年历
开发语言·后端·c#·.net
傲笑风6 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
我找到地球的支点啦6 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
维基框架6 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python