python基础05--深浅copy, set,bytes
1.1 深浅 copy
1、 = 赋值操作, lis1=[1,2,3] list2 = list1 list1.append(4) 则list1,list2都变
赋值都指向同一个地址,改变一个就会改变另外一个
赋值操作 他俩一样的
2、copy 浅拷贝 复制了一份,创建新对象, 拷贝第一层
list1 = [1,2,3] list2 = list1.copy() list1和list2不是一个对象
list1 = [1,2,3] list2=list1[:] 切片产生新对象
3、deepcopy 深拷贝 复制了一份,创建新对象,包括内部所有内容进行拷贝
import copy
list1 = [1,2,[3,4,5]] list2 = copy.deepcopy(list1)
拷贝比创建对象的过程快
1.2 集合 set
1、可变数据类型,他里面的元素必须是不可变数据类型,无序,不重复
2、可以使用大括号 { } 或者 set() 函数创建集合,
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
3、set可以进行集合运算
print(a - b) # a和b的差集
print(a | b) # a和b的并集
print(a & b) # a和b的交集
print(a ^ b) # a和b中不同时存在的元素
4、set操作
增:
set1.add(元素) 无序添加到集合
set1.update(seq) 把seq中每个元素无序添加到集合
删:
set1.pop() 随机删除,返回被删除的元素
set1.remove(元素) 删除元素,无该元素报错
set1.clear() 清空字典
del set1 删除字典
查:
for i in set1:print(i)
5、列表转化为集合 自动去除列表中重复元素
set(list)
1.3 小数据池
1、= 赋值 == 比较值是否相等 is 比较内存地址 id(内容)内存地址
变量赋值运算 两个变量指向的是一个地址,改变一个,则都会改变
数字,字符串 小数据池,如果创建数据池之内的范围,则共用一个
数字范围 -5---256
字符串范围:1,不能有特殊字符
int1 = 2 int2 = 2 int1和int2 在内存中使用一个id
int1= 300 int2 = 300 int1和int2 在内存中使用的不是一个id
#剩下的 list dict tuple set 没有这个概念
lis1 = [1,2,3] lis2=[1,2,3] lis1和lis2在内存中不是一个id
1.4 bytes
bytes类型 适用存储和网络传输
encode 编码,获取到编码后的结果,bytes
decode 解码,把bytes编程为我们熟悉的字符串
string = b'xxxxxx'.decode() 直接以默认的utf-8编码解码bytes成string
b = string.encode(“utf-8”) 直接以默认的utf-8编码string为bytes
python基础05--深浅copy, set,bytes的更多相关文章
- Python基础之深浅copy
1. 赋值 lst1 = [1, 2, 3, ["a", "b", "c"]] lst2 = lst1 lst1[0] = 11 print ...
- python 集合和深浅copy
#1数据类型的补充#2.集合set#3.深浅copy 补充:str --> bytes s.encode('gbk')bytes --> str s.decode('gbk') 1.数据类 ...
- Python基础—set、copy(Day7)
一.数据类型补充 1.str:.isspace()字符串是空格或至少是一个空格. s='alex' s1=' ' ret=s1.isspace() print(ret)执行结果:True 2.tul ...
- python基础(6)-深浅拷贝
赋值 字符串和数字 # id()函数可以获取变量在内存中的地址标识 num1 = 2; num2 = 2; print(id(num1)) # result:8791124202560 print(i ...
- python 基础之深浅拷贝
深浅拷贝 s=[[1,2],'fgfgf','cx'] s3=s.copy() print(s) print(s3) 测试 D:\python\python.exe D:/untitled/dir/f ...
- 0622 python 基础05
使用双重for循环,打印 0~100 # -*- coding: utf-8 -*- # D:\python\test.py def printOneToHundred(): for i in ...
- Python基础:深浅拷贝
对于数字.字符串深浅拷贝: import copy num = 0 copy_num = copy.copy(num) print("These are normal copy") ...
- python基础05 if选择
摘要:if语句是用来检查一个条件,如果条件为真(true),我们运行一个语句块(称为IF块),否则(else)运行另一个语句块(else块).else语句是可选的 程序1(将文件保存为if.py): ...
- python基础05 缩进与选择
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例. ...
随机推荐
- C语言实现归并排序
#include<stdio.h> #define MAXN 100 //A[p,q] A[q+1,r]是两个有序数组,想办法把他们结合成一个有序数组 void merge(int A[] ...
- xadmin引入django-rest-framework
一.安装: pip install djangorestframework 安装djangorestframework库 https://github.com/encode/django-rest-f ...
- Chrome调试 ---- 控制台获取元素上绑定的事件信息以及监控事件
需求场景 在前端开发中,偶尔需要验证下某个元素上到底绑定了哪些事件,以及监控某个元素上的事件触发情况. 解决方案 普通操作 之前面对这种情况,一般采取的措施就是在各个事件里写console.info, ...
- springboot 整合 mybatis 入门
springboot整合mybatis 0.yml 配置文件 1.创建数据库表. 2.创建实体类. 3.创建 Mapper 接口 ,添加 @Mapper 注解. 4.创建 Mapper 映射文件. & ...
- mybatis框架-resultMap的自动映射级别-partial 和full的探讨
现在我们做一个小实验,输出一下上一个案例中没有匹配的属性,注意哦,现在user类中是有内部嵌套的复杂数据类型的 运行结果: 注意到:现在居然连userPassword都打印不出来了,原因就是user类 ...
- Comet OJ 夏季欢乐赛 完全k叉树
完全k叉树 https://cometoj.com/contest/59/problem/A?problem_id=2712 题目描述 欢迎报考JWJU!这里有丰富的社团活动,比如为梦想奋斗的ACM集 ...
- 洛谷P3835 【模板】可持久化平衡树(FHQ Treap)
题面 传送门 题解 可持久化一下就好了,具体可以看代码 这里有一个小\(trick\)就是我们原本在\(merge\)的时候也要新建节点的,但是我们\(merge\)之前一般已经\(split\)过了 ...
- python基础之五:dict 字典
1.数据类型的划分:可变数据类型.不可变数据类型 不可变的有:元组(tuple).字符(str).整型(int).布尔型(bool) 它们都可以哈希 可变的:列表(list).set.字典(dict) ...
- The happy secret to better work,https://www.ted.com/talks/shawn_achor_the_happy_secret_to_better_work/transcript#t-100352
When I was seven years old and my sister was just five years old, we were playing on top of a bunk b ...
- 请写出css中选择器(元素选择器、类选择器、id选择器)的优先级顺序,和当各种选择器组合时,优先级的计算规则是什么?
id选择器>类选择器>元素选择器 规则:选择器的权重值表述为4个部分,用0,0,0,0表示. 通配符*的权重为0,0,0,0 标签选择器.伪元素选择器的权重为0,0,0,1 类选择器.属性 ...