PythonDay06
第六章
今日内容
小数据池
深浅拷贝
集合
小数据池
== 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的更多相关文章
- Python--day06(深浅拷贝、元组、字典、集合)
1. 深浅拷贝 1.1 值拷贝 s1直接将ls中存放的地址拿过来s1内部的值发生任何变化,s2都会随之变化 s1 = ['1','2','3','a']s2 = s1print(id(s1),id ...
- 小白学python-day06-
今天是day06,以下是学习内容总结: 但行努力,莫问前程. --------------------------------------------------------------------- ...
- pythonday06数据类型(四)
今日内容 1.集合 2内存相关 1.集合set 无序 无重复 v = {1,2,3,4,5,6,99,100} # 疑问:v = {} """ None int v1 = ...
随机推荐
- linux下简易端口扫描器
#include<iostream> #include<string.h> #include<sys/types.h> #include<sys/socket ...
- Luogu P2309 loidc,卖卖萌
题目链接:Click here 题目大意:给你一个长度为n的数串,问这个数串的sum为正数的子串个数 Solution: 我们先处理以下前缀和,记为\(s_i\) 则问题可以转化为求有多少对\(i,j ...
- 在最新的 create-react-app 中添加 less 支持
前置知识: 把 webpack 的相关配置暴露出来 运行 git add -A 运行 git commit -m 'project init' 运行 yarn eject 然后选 y 项目中多出来两个 ...
- prometheus-pushgateway安装
背景 当prometheus的server与target不在同一网段网络不通,无法直接拉取target数据,需要使用pushgateway作为数据中转点. 弊端 将多个节点数据汇总到 pushgate ...
- 解决vuex保存的数据刷新页面时清空
参考文章: vuex中store保存的数据,刷新页面会清空 主要解决代码: 1.更改store文件下index文件state的定义 const store = new Vuex.Store({ sta ...
- maven 高级玩法
maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean ...
- java 根据省份证号-判断省份-性别-生日
package com.nf147.manage.Test; import java.text.ParseException; import java.text.SimpleDateFormat; i ...
- Java 简单工厂
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一 ...
- @清晰掉 Sizeof与字符串
Sizeof与字符串 1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符 如在代码中写 "abc",那么编译器帮你存储的是"abc/0" 2 ...
- 2018年5月6日GDCPC(广东赛区)总结
大二第二次参加省赛了,这次成绩不是太理想. ———————————————————————————————— day1:试机 约好的12点钟在地铁站集合,好像就我一个人迟到了5分钟,被sen主席批判一 ...