python day06
深浅拷贝
1、值拷贝
ls1 = [1,2,3]
ls2 = ls1
#ls2直接把栈区里ls1存的地址拿过来,也指向堆区里列表的id
#原列表发生ls1改变(不是重新赋值),ls2也跟着发生改变
2、浅拷贝
ls1 = [1,2,3]
ls2 = ls1.copy()
#浅拷贝首先是在堆区里重新开辟一个新的空间存放列表,所以id(ls1)和id(ls2)不一样
#然后把原列表里存的地址直接拿过来(最后指向和原列表相同的值),
#如果原列表ls1里不可变类型的值发生重新绑定,ls2的值不发生影响,
#如果原列表ls1里可变类型的值发生重新绑定,ls2的值跟着发生影响。
3、深拷贝
ls1 = [1,2,3]
from copy import deepcopy
ls2 = deepcopy(ls1)
#深拷贝首先是在堆区里重新开辟一个新的空间存放列表,所以id(ls1)和id(ls2)不一样
#然后把原列表里存的不可变类型值的地址直接拿过来(最后指向和原列表相同的值),可变类型的值重新复制一份,存入新地址
#如果原列表ls1里不可变类型的值发生重新绑定,ls2的值不发生影响,可变类型发生改变,ls2也不会发生影响
元组
#元组可以理解为不可变的列表
#1、元组可以存放多个值 可以进行成员运算
#2、元组里可以存放任意类型的值
#3、元组是有序的 #可以进行索引取值并且可以切片
#4、可以存放重复的值 #可以进行计数
基本操作
1、索引取值
2、成员运算
3、长度
4、切片
5、运算(拼接)
6、for循环
方法
1、计数
print(t1.count(0)) # 对象0在元组中出现的次数
2、查找索引
print(t1.index(123, 4, len(t1))) # 对象0在区间4~末尾第一次出现的索引
字典
#容器(集合):可以存放多个值
#单列容器:list | tuple
#双列容器(map):只有dict,存放数据成对出现,dict存放数据采用key-value键值对方式
#字典中的key只能是不可变类型
--key是字典取值的唯一依据,key一旦确定,就必须确保唯一性
#字典中的value可以为任意类型
--value是用来存放世间万物,并且可以重读,可以改变 ==>字典是可变类型
dic = {'a':1,'b':3,1:10,'c':11,True:100} 在字典里True和False就是1和0
-->{'a':1,'b':3,1:100,'c':11}
字典的定义
#空字典
d1 = {}
d2 = dict()
#用map映射创建字典
d3 = dict({'a':1,'a':2})
#用关键字赋值
d4 = dict('a' = 1,'b' = 2)
注:=左边的值为合法变量名,都会被转换成字符串形式的key
#创建有多个key值采用fromkey
d5 = {}.fromkey(可迭代对象,默认值)
把可迭代对象分出来给字典当key,把默认值作为value赋值给他们,如果不设置默认值就把None赋值给他们
字典的操作
dic = {'a':1,'b':2}
1、增:字典名[key] = value
如果key存在就是修改,key不存在就是添加
dic['c'] = 3
2、改
dic['a'] = 2
3、查:字典名[key] 只能查找已有的key,没有的key会报错
print(dic['b']) -->2
###get() dic.get(key,default)
按key查找,如果是没有的key,就会返回默认值default(可以自己设置)
4、删
1)pop 按key,不写报错 有返回值
2)clear 清空列表
3)popitem() 默认从末尾删除,并返还(key,value)的元组形式
其他方法
1、update()更新
update更新,key有的话就覆盖,没有的话就添加
2、setdefault()
和get()实现有点相似括号里面可以加入key,default
如果key存在 setdefault什么也不干
如果key不存在 就把默认值赋值给key添加到列表里面,不写就把None赋值给key
字典的循环
1、直接循环,得到的就是key的循环
2、循环key
dic.key()
for i in dic.key()
3、循环value
dic.value()
for i in dic.value()
4、循环key和value
dic.items()
for i in dic.items()
print(i) -->(key,value)
重点:相当于解压赋值
for i , j in dic.items:
print(i,j) -->key,value
集合类型(set)
#空集合:不能用{} ,因为用来表示空字典了
s = set()
#概念
1、set为可变类型,所可以增加和删除
2、set不能存重复数据 ,所以可以用来进行去重操作
3、set为无序存储,所以不可以索引
4、set为单列容器,所以没有key
#所以set不能取值
#增 (add、update)
1)add() 直接把括号里添加到集合里
2)update() 更新把括号里的集合添加进去,去重
#删 (pop() ,remove() , clear())
pop 随机删除,有返回值
remove() 按ele删除 没有返回值
clear() 清空
#set运算
#交集:两个都有 &
#合集:两个的合体 |
#对称交集:刨除共有的,其他剩下的合体 ^
#差集 - 独有的 一个集合减去另一个集合和他共有的
#比较:前提一定是包含关系
python day06的更多相关文章
- python day06笔记总结
2019.4.3 S21 day06笔记总结 一.昨日内容补充 1.列表独有功能: 1.revers 反转 例:v1 = [1,2,4,88,2] v1.revers() print(v1) 2.so ...
- python day06 作业答案
1. count=1 while count<11: fen=input('请第{}个评委打分' .format( count)) if int(fen) >5 and int(fen) ...
- python自动化运维之路06
python中面向对象编程 编程范式: 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条 ...
- Python基础(正则、序列化、常用模块和面向对象)-day06
写在前面 上课第六天,打卡: 天地不仁,以万物为刍狗: 一.正则 - 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法: - 在线正则工具:http://tool ...
- python开发学习-day06(模块拾忆、面向对象)
s12-20160130-day06 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- day06 - Python - 面向对象
本节内容: 引子 面向对象 v.s. 面向过程 面向对象编程介绍 面向对象的特性: 封装 继承 多态 类.方法 1.引子 假设你现在是一家游戏公司的开发人员,现 ...
- 记录我的 python 学习历程-Day06 is id == / 代码块 / 集合 / 深浅拷贝
一.is == id 用法 在Python中,id是内存地址, 你只要创建一个数据(对象)那么就会在内存中开辟一个空间,将这个数据临时加载到内存中,这个空间有一个唯一标识,就好比是身份证号,标识这个空 ...
- day06 python is == 编码 解码
day06 python 一. is 和 == 的区别 == :比较, 判断, 比较的是值: 可以比较数字, 字符串, 列表, 元组, 字典,等 is :是 比较, 比较的是内存地 ...
- day06 python代码操作MySQL
day06 python代码操作MySQL 今日内容 python代码操作MySQL 基于python与MySQL实现用户注册登录 python操作MySQL python 胶水语言.调包侠(贬义词& ...
随机推荐
- vue 中 vue-router、transition、keep-alive 怎么结合使用?
<transition :name="name" mode="out-in" name="fade"> <keep-ali ...
- python中的2、8、16、10进制之间的转换
python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...
- Mysql事务开启方式(客户端+java手动+Spring Boot)
一:概念 作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行.举例 我们需要向数据库插入3条数据(我们希望这三条数据要么全部插入成功,要么全部失败), 比如第一条数据插入成功,插入第二条数据 ...
- 【源码学习】redux-thunk
阅读 redux 源码之后,想要加深一下对中间件的理解,于是选择 redux-thunk(2.3.0)这个源码只有十几行的中间件. 之前 redux 的学习笔记 https://www.cnblogs ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十║Vue基础终篇:传值+组件+项目说明
缘起 新的一天又开始啦,大家也应该看到我的标题了,是滴,Vue基础基本就到这里了,咱们回头看看这一路,如果你都看了,并且都会写了,那么现在你就可以自己写一个Demo了,如果再了解一点路由,ajax请求 ...
- mysql的学习笔记(二)
1.数据类型,存储的类型. 整型 TINYINT 有符号-128到127 无符号值:0到255 1字节 SMALLINT 有符号 -32768到32767 0到65535 2字节 MEDIUMINT ...
- 死磕 java集合之HashSet源码分析
问题 (1)集合(Collection)和集合(Set)有什么区别? (2)HashSet怎么保证添加元素不重复? (3)HashSet是否允许null元素? (4)HashSet是有序的吗? (5) ...
- 《代码整洁之道》(Clean Code)- 读书笔记
一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...
- ToastCustomUtil【简单的Toast封装类】【自定义Toast的显示风格】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 ToastUtil + ToastCustom结合.主要解决低版本机型上系统toast显示不好看的问题. 效果图 代码分析 在Toa ...
- MyX5TbsDemo【体验腾讯浏览服务Android SDK (完整版)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 按照官网上的说明:可独立下载x5内核,也可共享使用微信或手Q的x5内核. 本Demo在引用腾讯X5内核的基础上进行了封装.参考< ...