深浅拷贝

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的更多相关文章

  1. python day06笔记总结

    2019.4.3 S21 day06笔记总结 一.昨日内容补充 1.列表独有功能: 1.revers 反转 例:v1 = [1,2,4,88,2] v1.revers() print(v1) 2.so ...

  2. python day06 作业答案

    1. count=1 while count<11: fen=input('请第{}个评委打分' .format( count)) if int(fen) >5 and int(fen) ...

  3. python自动化运维之路06

    python中面向对象编程 编程范式: 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条 ...

  4. Python基础(正则、序列化、常用模块和面向对象)-day06

    写在前面 上课第六天,打卡: 天地不仁,以万物为刍狗: 一.正则 - 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法: - 在线正则工具:http://tool ...

  5. python开发学习-day06(模块拾忆、面向对象)

    s12-20160130-day06 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  6. day06 - Python - 面向对象

    本节内容: 引子 面向对象 v.s. 面向过程 面向对象编程介绍 面向对象的特性:       封装       继承       多态 类.方法   1.引子 假设你现在是一家游戏公司的开发人员,现 ...

  7. 记录我的 python 学习历程-Day06 is id == / 代码块 / 集合 / 深浅拷贝

    一.is == id 用法 在Python中,id是内存地址, 你只要创建一个数据(对象)那么就会在内存中开辟一个空间,将这个数据临时加载到内存中,这个空间有一个唯一标识,就好比是身份证号,标识这个空 ...

  8. day06 python is == 编码 解码

    day06 python   一. is 和 == 的区别     == :比较, 判断, 比较的是值: 可以比较数字, 字符串, 列表, 元组, 字典,等     is :是 比较, 比较的是内存地 ...

  9. day06 python代码操作MySQL

    day06 python代码操作MySQL 今日内容 python代码操作MySQL 基于python与MySQL实现用户注册登录 python操作MySQL python 胶水语言.调包侠(贬义词& ...

随机推荐

  1. 区块链技术现状&前景

    炒作周期 Gartner 在 2017 年发布的新兴技术炒作曲线,这张图是去年 8 月发布的,当时估计它们也没料到随后能有那么火,当时区块链在这个位置,其实是已经过了炒作的巅峰期,正在往低谷走的这个阶 ...

  2. PermissionDialog【权限申请提示对话框】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 随着Android6.0的普及,权限申请也变成了我们开发中必写的一段代码.比如sd卡权限.定位权限.拍照权限,这些几乎都是每个app ...

  3. 美团分布式服务通信框架及服务治理系统OCTO

     一.什么是OCTO 定义: OCTO是美团的分布式服务通信框架及服务治理系统,属于公司级基础设施,目前尚未开源. 目标: 为公司所有业务提供统一的服务通信框架,使业务具备良好的服务运营能力,轻松实现 ...

  4. DSAPI 字符串和文件转Md5字符串

    方法列表: 字符串转MD5字符串(ByVal 要转换的字符串 As String, Optional 转换格式 As MD5格式 = MD5格式.小写32位) As String 文件转MD5字符串( ...

  5. 原生js轮盘抽奖实例分析(幸运大转盘抽奖)

    效果图: 所需图片素材: 这张图是pointer.png的位置的. turntable-bg.jpg这张是转盘背景图,在背景位置. 这张是turntable.png位置的. 需要这三张图片,如果要实现 ...

  6. Javascript 面向对象(共有方法,私有方法,特权方法,静态属性和方法,静态类)示例讲解

    一,私有属性和方法 私有方法:私有方法本身是可以访问类内部的所有属性(即私有属性和公有属性),但是私有方法是不可以在类的外部被调用. <script> /* * 私有方法:私有方法本身是可 ...

  7. .NET知识体系(转载)

    这篇文章为新手指明的学习方向: https://www.cnblogs.com/mcgrady/p/4725038.html 先生存后发展,先学会选择和使用知识和工具来做东西,然后在研究怎么做的再好一 ...

  8. c#实战开发:以太坊钱包快速同步区块和钱包卡死解决方案 (三)

    首先以太坊默认的快速同步模式 我们需要先设置当前同步模式内存大小512-2048范围 在服务器配置情况下最大化内存 输入以下命令 geth --fast --cache=2048 最快同步模式也是 保 ...

  9. [TCP/IP] 数据链路层-ethereal 抓包分析数据帧

    1.下载 http://dx1.pc0359.cn/soft/e/ethereal.rar 2.打开软件,指定抓取的网卡,下面是我抓取自己的主要网卡数据 3.开启个ping命令 , 不停的ping一台 ...

  10. PHP基础笔记

    今天一个阳光明媚的大周天,小崔百无聊赖的翻看着各种老旧的经典电影,无奈谁让自己是没女朋友的单身狗呢.闲来无事就记录一下PHP的一些基础知识吧! 1.PHP是什么? PHP是一种创建动态交互性站点的服务 ...