第六章

今日内容

  • 小数据池

  • 深浅拷贝

  • 集合

小数据池

  • == is id

    == 判断两个值是否相等

    is --- 是 判断两个值的内存地址是否相等

  • 代码块:一个py文件,一个函数,一个模块,终端中每一行都是代码块

代码块中有自己的内存空间:int ,str ,bool

int:-2~正无穷

a = -6
b = -6
print(a is b)

a = 1000
b = 1000
print(id(a), id(b))
print(a is b)

str:

  • 字符串:

    • 定义字符串的时候是任意的

    • 字符串(字符和数字)进行乘法时总长度不超过20

    • 特殊符号(中文,符号)进行乘法的 时候乘以0 或 1

bool:

True,False

小地址池 -- int,str , bool

int:-5~ 256

str:

  • 字母,数字长度任意

  • 字符串进行乘法的时候总长度不能超过20

  • 特殊符号进行乘法的时候只能乘 0

驻留机制:节省内存空间,提升效率(减少了开辟空间和销毁空间的耗时)

深浅拷贝

赋值, =
a = [1,2,3,4]
b = a
print(id(a),id(b))
print(a is b)
# a和b的内存地址一样,任何一个改,其他的改都改
浅拷贝
# 在列表的元素中,元素是列表的情况下,拷贝的是内存地址
# 当内部的元素发生改变时,拷贝的列表和原列表都发生改变
a = [1,2,3,[4,5]]
b = a[:]  
# 浅拷贝a[-1].append(6)
print(b)
深拷贝
import copy  # 导入 copy模块
a = [1,2,3,[4,5],6]
b = copy.deepcopy(a)
print(id(a[-2]))
print(id(b[-2]))

print(a)
print(b)
print(a == b)
print(id(a),id(b))
print(a is b)
# 不可变数据类型内存地址共用,可变数据类型新开辟一个空间 不管嵌套多深

集合

集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重

集合 -- set

s = {1,2,3,4}

  • 集合就是一个没有值得字典,无序,可变;

  • 天然集合去重

    s = {1,1,2,3,4,1,1,1,1}

s = {}       # 空字典
s1 = set()   # 空集合
print(type(s1))
print(type(s))
集合的增:
s = set()
s.add('one')
s.update('two') #不建议使用
set('12345') #后面跟可迭代对象,只能迭代添加到空集合
集合的删:
s = {100, 200 ,500 , 10 , 0.1, 0.5}
s.remove(500) # 通过元素删除
s.clear() # 清空列表
s.pop() # 随机删除
集合的改

先删除,后添加,没有改的方法

集合的查

for循环

其他操作

s = {1, 24, 25, 48, 98, 56}

s_ = {1, 24, 25}

  • 差集 -

print(s - s1)
print(s1 - s)
  • 交集 &

print(s & s1)
  • 并集 |

print(s | s_)

  • 反交集 ^

print(s ^ s_)

  • 子集 返回一个布尔值

print(s > s_)

  • 父级

print(s_ > s )

  • 冻结集合

print(frozenset({1, 24, 5,4}))

PythonDay06的更多相关文章

  1. Python--day06(深浅拷贝、元组、字典、集合)

    1.  深浅拷贝 1.1  值拷贝 s1直接将ls中存放的地址拿过来s1内部的值发生任何变化,s2都会随之变化 s1 = ['1','2','3','a']s2 = s1print(id(s1),id ...

  2. 小白学python-day06-

    今天是day06,以下是学习内容总结: 但行努力,莫问前程. --------------------------------------------------------------------- ...

  3. pythonday06数据类型(四)

    今日内容 1.集合 2内存相关 1.集合set 无序 无重复 v = {1,2,3,4,5,6,99,100} # 疑问:v = {} """ None int v1 = ...

随机推荐

  1. shell练习--PAT题目1008:数组元素循环右移问题 (失败案例,运行超时)

    一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A​0​​A​1​​⋯A​N−1​​)变换为(A​N−M​​⋯A​N−1​​A ...

  2. Python3 操作mysql数据库

    python关于mysql的API--pymysql模块 pymsql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同. 模块安装 pip install pymysq ...

  3. explicit作用

    在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. explicit使用注意事项: explicit 关键字只能用 ...

  4. 【python学习之五】自定义函数实现用 Python 发送电子邮件

    前言 之前论坛里有人发过关于发送邮件的帖子,设计器也有关于发送邮件的控件.我这里再次重复,希望能有帮到大家的地方. 信息准备 发送邮件前必须准备好一些基本信息,例如发件人邮箱地址.发件人邮箱密码.收件 ...

  5. EventBus-实现java状态机

    摘自:https://www.jianshu.com/p/8def04b34b3c 首先,了解状态机是什么,我们为什么需要状态机! 举个最简单例子,请假,作为一个最底层程序员,每次请假都要领导层层审批 ...

  6. centos7 编译问题:aclocal-1.14: command not found

    centos7 编译问题:aclocal-1.14: command not found https://blog.csdn.net/vr7jj/article/details/80438663

  7. 为java类起别名

    <typeAliases> <!-- 1.typeAlias:为某个java类型起别名 type:指定要起别名的类型全类名;默认别名就是类名小写:employee alias:指定新 ...

  8. Flutter工程目录

    1 目录结构 当使用flutter create myapp 创建纯flutter项目后,会自动生成初始化代码. 需要注意一下几个文件夹 2 资源 像图片.视频.文字等这些资源文件,在 Flutter ...

  9. WPF SAP水晶报表例子和打包Setup

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=" ...

  10. 双三次插值C代码(利用opencv)

    双三次插值C代码(利用opencv) phasecubic2.cpp D:\文件及下载相关\文档\Visual Studio 2010\Projects\phasecubic2\phasecubic2 ...