六、深浅拷贝与while循环】的更多相关文章

一.深浅拷贝 3.1 浅copy: 浅copy是把原列表第一层的内存地址不加区分完全copy一份给新列表 用法: list1=[ 'egon', 'lxx', [1,2] ] list2=list1.copy() 对于不可变类型的赋值,都是产生了新值,让原列表的索引指向新的内存地址,并不会影响新列表.但对于可变类型,我们可以改变可变类型中包含的值,但内存地址不变即原列表的索引指向仍然指向原来的内存地址,于是新列表也跟着一起受影响. 3.2 深copy 要想copy得到的新列表与原列表的改操作完全…
目录: 1.break.continue 2.for循环 3.数据bytes类型 4.字符串与字节的关系 5.变量指向与深浅拷贝 6.set集合 7.文件操作 一.break.continue break 语句,break 语句用于跳出当前循环体 continue语句,跳过当前循环块中的剩余语句,然后继续进行下一轮循环 pass 语句是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句 二.For循环 Python for循环可以遍历任何序列的项目,如一个列表或者一个字…
###########################总结########################### 1. 基础数据类型补充 大多数的基本数据类型的知识.已经学完了 a='aaaa' lst=['linux','alex','xsb'] s='+'.join(lst) print(s) ##linux+alex+xsb "*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串 spl…
数据类型+深浅拷贝+循环 别的语言的数组 python不用定义 直接使用 color=['红','橙','黄','绿','青','蓝','紫'] print(color[1:3]) //打印[1,3)的数据 反向选择用-1 -2 color.append("白") //增 color.remove("紫") color.pop(2) //删除 color.insert(1,"黑") //插入 print(color) color.reverse(…
1.join() 将列表转换成字符串,并且每个字符之间用另一个字符连接起来,join后面必须是可迭代的对象(字符串,列表,元组,字典,集合),数字不能迭代 例如: s = ['a','b','c'] s1 = '_'.join(s) print(s1) 结果为:a_b_c 2.字符串转换成列表:split() 列表转换成字符串:join() 3.列表的删除(pop,remove,del,clear) 如果用for循环删除,第二个元素的索引就变成了第一个元素的索引,此时列表内部的索引在改变 例如:…
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文件, 一个模块, 一个函数 ,一个类,一个终端的每一行就是代码块 ​ 代码块的关系:如果在同一个代码块中,默认的整数和字符串还有布尔值都会进行缓存 #在python中是用字典的方式存储 a=1 b=1 print(globals()) #函数会以字典类型返回当前位置的全部全局变量. 驻留机制: in…
1,今日内容: 1.深浅拷贝:**** 2.元组 - 元组可以存放可变类型 *** 3.字典:***** -- 增删改查 -- 常用方法 4.集合:** -- 集合运算 5.数据类型的相互转化 ******** 6.内存管理 ***** 二,深浅拷贝 ## 拷贝:对值进行复制的过程 # 1,值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来 # ls内部的值发生任何变化,ls1都会随之变化 #2,浅拷贝 ls2 = ls.c…
算数运算符: Py2中精确除法需要导入:from __future__ import division,(符由特  ,将来的.滴未省,除法) py3不需要导入 赋值运算符: 比较运算符: 成员运算符: 逻辑运算符(布尔运算符): 身份运算符: 内存的读写速度比硬盘要快,3.0里面二进制和字符型必须严格区分 人的痛苦都是对自己无能的愤怒,python一行最多输80个字符 多线程可以并行运算 单线程串行执行 位运算符: 六个标准的数据类型: 一般字符串执行一个功能,生成一个新的内容,原来内容不变,只…
Python之路[第二篇]:Python基础(一)   入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 1==1: name = 'JasonWang' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 if 条件 else 值2 #三目运算符 name = 'aa' if 1 == 2 else 'SB'print(name)SB 如果条件为真:r…
一.集合数据类型(set):无序不重复的集合,交集.并集等功能 二.三元运算符 三.深浅拷贝 1)字符串和数字:深浅内存地址都一样 2)其他:浅拷贝:仅复制最外面第一层 深拷贝:除了最内层其他均拷贝 四.函数: 1)创建:def 函数名(参数) 2)返回值 return 返回值,如果不指定return则默认返回None 一旦遇到return后面的代码不再执行 3)参数 形参.实参 普通参数数量要一致并且一一对应 指定参数,执行参数的时候指定形参=实参 指定参数的默认值,默认值一定要放在参数的尾部…
1.什么是深浅拷贝? python中一切皆对象,python中的数字.字符串.元组等,如果存放在了内存中,这部分内存里面的内容是不会改变的,但是也有情况,内存中存放了可变对象,比如说列表和字典,他们的内存空间是可以被修改的. 下面我们定义一个列表: list=[1,2,3,4,5] list1=list list[0]=6 >>>list [6,2,3,4,5] >>>list1 [6,2,3,4,5] 如果我们只想改变list,问题就出现了. 赋值操作 list1 =…
拷贝 我们已经详细了解了变量赋值的过程.对于复杂的数据结构来说,赋值就等于完全共享了资源,一个值的改变会完全被另一个值共享. 然而有的时候,我们偏偏需要将一份数据的原始内容保留一份,再去处理数据,这个时候使用赋值就不够明智了.python为这种需求提供了copy模块.提供了两种主要的copy方法,一种是普通的copy,另一种是deepcopy.我们称前者是浅拷贝,后者为深拷贝. 深浅拷贝一直是所有编程语言的重要知识点,下面我们就从内存的角度来分析一下两者的区别. 浅拷贝 首先,我们来了解一下浅拷…
一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一个对象,类的实例化就是对象 b.int内部优化 1.n1和n2的内存地址相同 n1 = 123 n2 = n1 2.按理说n1和n2的内存地址应该不同,这是由于python的内部机制的原因, 在-5~257以内的数,按2的方式写,都是指向同一个内存 n1 = 123 n2 = 123 除此之外的数,…
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, python 一切事物都是对象,对象是类创建的,像 增加删除更改 都存在于类里边,也可以称作类的成员 set集合 set是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iter…
目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双向队列deque 6.Python单向队列deque 7.Python深浅拷贝原理 8.Python深浅拷贝应用 9.python函数的基本定义(open.lambda.递归.装饰器) collections系列…
1.  深浅拷贝 1.1  值拷贝 s1直接将ls中存放的地址拿过来s1内部的值发生任何变化,s2都会随之变化 s1 = ['1','2','3','a']s2 = s1print(id(s1),id(s2)) # 1986703930376 1986703930376s1[2] = 'b'print(id(s1),id(s2)) # 1986703930376 1986703930376 1.2  浅拷贝 s2 = s1.copy() 新开辟列表空间,但列表中的地址都是直接从ls列表中拿来s1…
 一.计算机基础 1..软件(应用程序) 2.解释器/编译器 - 解释型语言:将代码每一行传递给计算机一行,常用编程语言python,PHP,Ruby. - 编译型语言:将代码完全执行完后会形成一个文件把结果传递给计算机,常用编程语言C, C++, C#, Java, Go语言. 3.操作系统 - Windows :价格昂贵 -xp,win7,win8,win10,Windows server - Linux -centos 免费,图形画面差 -Ubuntu 个人开发,图形画面较好 -Redha…
一.运算符及优先级 Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 1.算数运算符 运算符 描述 实例,a=20,b=10 + 加 a+b输出结果30 - 减 a-b输出结果10 * 乘 a*b 输出结果200 / 除 a/b输出结果2 % 取模 a/b输出结果0 ** 取幂 a**b输出结果20的10次方 // 取整除 9/2输出结果4,9.0/2.0输出结果4.0 2.比较运算符 运算符 描述 实例 == 等于 (a==b)返回False !+ 不等于 (a!=b)…
(一)yield和yield from 转自:理解yield   yield from (1)yield 1.通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件.它可以是mylist = [1, 2, 3],也可以是mylist = [x*x for x in range(3)]. 它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗内存. 2.对比可迭代对象,迭代器其实就只是多了一个函数:__next__(),可以不再使用for循环来…
深浅拷贝 # 值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来 # ls内部的值发生任何变化,ls1都会随之变化 ls2 = ls.copy() # 新开辟列表空间,但列表中的地址都是直接从ls列表中拿来 # ls内部的可变类型值发生改变,ls2会随之变化 ls3 = deepcopy(ls) # 新开辟列表空间,ls列表中的不可变类型的地址直接拿过来,但是可变类型的地址一定重新开辟空间 # ls内部的所有类型的值发生改变…
深浅拷贝 # 值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来# ls内部的值发生任何变化,ls1都会随之变化 ls2 = ls.copy() # 新开辟列表空间,但列表中的地址都是直接从ls列表中拿来# ls内部的可变类型值发生改变,ls2会随之变化 ls3 = deepcopy(ls) # 新开辟列表空间,ls列表中的不可变类型的地址直接拿过来,但是可变类型的地址一定重新开辟空间# ls内部的所有类型的值发生改变,ls…
一.深浅拷贝 1.  值拷贝 ls1 = ls2  不开辟空间,指针跟着走.(直接将ls1中存放的地址拿过来,内存中不会开辟新的空间,所以你怎么变,我也跟着变.)(ls1内部的所有类型的值发生改变,ls2都不会随之变化) 2.  浅拷贝 ls3 = ls1.copy()  ls3新开辟空间,但数据内里面每个元素的地址同ls1.所以ls1中不可变类型变了,相当于ls1重新指到了一个新的地址,ls3还指向原来的那个地址.如果s1中可变类型的值变了,因为地址没变,只是值变了.所以ls3中可变类型的值也…
首先我们来讲一下深浅拷贝 1:值拷贝,假设一个列表等于L1 再定义一个L2=L1  这样就是值拷贝 L2只是存的L1存列表的地址,所以当L1发生改变,L2也随之改变 2:浅拷贝,L2=L1.copy() 这样L2会新开辟一块内存地址放L1的所有值 但是会把L1的所有值的地址都直接复制过来放进去 所以如果L1里面有一个列表 如果这个列表里面值发生改变但是列表的内存地址不会改变所以L2里面还是存着这个列表的内存地址 所以L1里面的小列表发生改变,L2还是会跟着改变 3:深拷贝,from copy i…
一.基础数据类型补充 1.join() 把列表中的每一项(必须是字符串)用字符串拼接 与split()相反 lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"] # 遍历列表. 把列表中的每一项用"_" 做拼接 s = "_".join(lst) # 把列表转化成字符串 print(s) s1 = "汪峰_吴君如_李嘉欣_陈慧琳_…
思维导图: 集合的补充:下面的思维导图有一个点搞错了,在这里纠正一下,没有合集,是反交集,^这个是反差集的意思 . 交集&,反交集^,差集-,并集|,然后就是子集和超集 数据类型补充: ''' 1,int 2,str 3,tuple tu = (1) tu1 = ('name',) print(tu,type(tu)) # 1 <class 'int'> print(tu1,type(tu1)) tu = ('dfas') tu1 = ('name',) print(tu,type(t…
一 对前面知识点的补充 1.str中的join()方法是将列表转换成字符串 lst = ["韩雪","赵丽颖","黄渤","李连杰"] print("_".join(lst)) # 韩雪_赵丽颖_黄渤_李连杰 将每个元素用_进行拼接 s = "马化腾" print("-".join(s)) # 马-化-腾 2.把字符串转换成列表  用split() ss = &quo…
1.补充 1.1  join()字符串拼接. strs = "阿妹哦你是我的丫个哩个啷" nw_strs = "_".join(strs) print(nw_strs) # 阿_妹_哦_你_是_我_的_丫_个_哩_个_啷 lst = ["a","b","c","d"] nw_lst = "*".join(lst) print(nw_lst) # a*b*c*d joi…
一.基本数据类型补充 1.join() "*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代.  获取到的每个元素和前面的*进行拼接. 得到的是字符串 split() 切割. 切割的结果是列表, 需要把字符串转化成列表: split() 把列表转化成字符串: join() 2.删除和添加     (在for循环中不可操作) ① 建立新列表,将要删除或增加的添加到新列表   ② 循环新列表,删除老列表 3.  .fromkeys() 帮我们创建字典…
本节的主要内容: 基础数据类型补充 set集合 深浅拷贝 主要内容: 一.基础数据类型补充 字符串: li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_".join(li) print(s) # 李嘉诚_麻花藤_黄海峰_刘嘉玲 可以看出 join() 的作用是把列表中的字符串拼接起来,正好和 split() 相反 字符串转化成列表: split() 列表转化成字符串:join(…
内容概要: 数据类型操作补充 集合及其操作 深浅拷贝1.基础数据类型补充 1.1字符串的操作补充li = ["李嘉诚", "麻花藤", "黄海峰", "刘嘉玲"]s = "_".join(li) # 添加后列表变成字符串print(type(s),s) li = "黄花大闺女"s = "_".join(li) # 仍然是字符串print(type(s),s) 1.2列…