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=list…
1. 赋值 lst1 = [1, 2, 3, ["a", "b", "c"]] lst2 = lst1 lst1[0] = 11 print(lst1) #[11, 2, 3, ['a', 'b', 'c']] print(lst2) #[11, 2, 3, ['a', 'b', 'c']] lst1[3][0] = "d" print(lst1) #[11, 2, 3, ['d', 'b', 'c']] print(lst2…
#1数据类型的补充#2.集合set#3.深浅copy 补充:str --> bytes s.encode('gbk')bytes --> str s.decode('gbk') 1.数据类型的补充. str : isspace 判断是不是空格. list: 再循环一个列表时候,进行删除的动作时候,容易出错.一旦删除索引将会改变,所以才会报错 1,反向删除 2.增加替换 3.增加删除,两个for循环 4.步长删除. li = ['老男孩', 'python', 'alex', 'wusir',…
一.数据类型补充 1.str:.isspace()字符串是空格或至少是一个空格. s='alex' s1=' ' ret=s1.isspace() print(ret)执行结果:True  2.tul: 对于元组如果只有一个元素,并且没有逗号,此元素是什么数据类型,该表达式就是什么数据类型. tu=(1) tu1=(1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行结果: 1 <class 'int'> (1,) <class 'tuple'&g…
赋值 字符串和数字 # id()函数可以获取变量在内存中的地址标识 num1 = 2; num2 = 2; print(id(num1)) # result:8791124202560 print(id(num2)) # result:8791124202560 str1 = ' str2 = ' print(id(str1)) # result:39986040 print(id(str2)) # result:39986040 结论:对于数字和字符串来说,赋值时如果有相同的值在python管…
深浅拷贝 s=[[1,2],'fgfgf','cx'] s3=s.copy() print(s) print(s3) 测试 D:\python\python.exe D:/untitled/dir/for.py [[1, 2], 'fgfgf', 'cx'] [[1, 2], 'fgfgf', 'cx'] Process finished with exit code 0 浅拷贝之修改 s=[[1,2],'fgfgf','cx'] s3=s.copy() print(s3) s3[1]='chh…
使用双重for循环,打印 0~100 # -*- coding: utf-8 -*- # D:\python\test.py def printOneToHundred():     for i in range(10):         for j in range(1,11):             print i*10+j,         print '\n' printOneToHundred() 执行结果: C:\Users\***>python d:\python\test.py…
对于数字.字符串深浅拷贝: import copy num = 0 copy_num = copy.copy(num) print("These are normal copy").center(60,'*') print(num,id(num)) print(copy_num,id(copy_num)) print("These are deep copy").center(60,'*') deep_copy_num = copy.deepcopy(num) pr…
摘要:if语句是用来检查一个条件,如果条件为真(true),我们运行一个语句块(称为IF块),否则(else)运行另一个语句块(else块).else语句是可选的 程序1(将文件保存为if.py): i = 3 x = 1 if i > 0: x = x + 1 print x $python ifDemo.py #运行 程序运行到if的时候,条件为True,所以执行x = x + 1 print x语句没有缩进,那么就是运行if之外 如果第一句改成i不为真时(Flase),x= x + 1既不…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python!) if ( i > 0 ) { x = 1; y = 2; } 如果i > 0的话,我们将进行括号中所包括的两个赋值操作.括号中包含的就是块操作,它隶属于if. 在Python中…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python!) if ( i > 0 ) { x = 1; y = 2; } 如果i > 0的话,我们将进行括号中所包括的两个赋值操作.括号中包含的就是块操作,它隶属于if. 在Python中…
赋值 #赋值,指向同一内存地址 l1 = [1,2,3,4,5] l2 = l1 print(l1,l2) print(id(l1),id(l2)) 浅copy #浅copy,第一层互相独立,创建了新的内存地址,第二层之后,都指向同一地址 l1 = [1,2,3,[4,5,6]] l2 = l1.copy() print(l1,id(l1)) print(l2,id(l2)) l1.append('第一层')#第一层改变,copy不会改变 print(l1) print(l2) l1[3].ap…
a1=["a","b","c","aa"] b1=a1 a1[0]=" print(a1,b1) 此时结果为: a1=[","b","c","aa"] b1=[","b","c","aa"] 当两个列表赋值想等的话,改变其中一个列表里的元素,另一个列表中的元素也会随之变化. a1…
浅拷贝 没有嵌套,则copy后完全不同,有嵌套,则copy后本体不同,嵌套相同. l1 = [1, 2, [4, 5, 6], 3] l2 = l1.copy() print(l1 is l2) # False print(l1[2] is l2[2]) # True 深拷贝 copy后完全不同,嵌套也不同. import copy l1 = [1, 2, [4, 5, 6], 3] l2 = copy.deepcopy(l1) print(l1 is l2) # False print(l1[…
https://www.cnblogs.com/Eva-J/p/5534037.html 转自Eva_J  分析的特别好…
一.python中的变量及引用 1.1 python中的不可变类型: 数字(num).字符串(str).元组(tuple).布尔值(bool<True,False>) 接下来我们讲完后你就懂了为什么它们是不可变对象了. 都知道python中一切都是对象,而变量就是这些对象的引用,什么意思呢 综合表述: 变量是一个系统表的元素,拥有指向对象的连接的空间 对象是被分配的一块内存,存储其所代表的值 引用是自动形成的从变量到对象的指针 特别注意: 类型属于对象,不是变量 >>> c…
转自:http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html Python快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题. Python包含的内容很多,加上各种标准库.拓展库,乱花渐欲迷人眼.我一直希望写一个快速的.容易上手的Python教程,而且言语简洁,循序渐进,让没有背景的读者也可以从基础…
编码,深浅copy encode,decode在python2中使用的一些迷糊,python3中更容易理解 要理解encode和decode,首先我们要明白编码,字符和二进制的相关概念,简单来说,计算机的产生和设计只能进行二进制的运算,聪明的先辈们发明了ASCii编码用不同的二进制来表示不同英文字符实现.后来由于各国计算机的普及和推广,由于语言的原因产生了:Unicode,GB2312,UTF-8等不同的字符编码集. 在python3中对字符数据是使用的str类型,二进制数据使用的是bytes.…
1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码. decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码. encode的作用是将unicode编码转换成其他编码的字符串,如str2.enc…
1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码. 即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码. decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码. encode的作用是将unicode编码转换成其他编码的字符串,如str2.en…
一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk') # 翻译成gbk编码的形式 print(b1) # b'\xcc\xab\xb0\xd7' 两位 s2 = b1.decode('gbk') # 解码成字符串 print(s2) b2 = s2.encode('utf-8') # 翻译成UTF- 8编码的形式 print(b2) # b'\xe5\xa4…
本次内容: 元祖 字典 浅copy和深copy 集合 文件处理 1.1元祖 元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号(),列表使用方括号[].元祖创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 创建元祖 name = ('xiaojian','yangjian','while','yj') name1 = ('xiaojian',) #元祖只有一个元素时,需要加逗号(,) kong = () #创建一个空元祖 元祖与列表类似,下标索引从0开始,可以进…
深浅copy以及赋值 对于字符串和数字而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy n1 = #n1 = 'hahahaha' #赋值n2 = n1#浅copy n3 = copy.copy(n1) #深copyn4 = copy.deepcopy(n1)print(id(n1),id(n2)) #打印内存地址5787536 5787536print(id(n1),id(i3))5787536 5787536print(id(n1),id(n4))57…
三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(not)的条件判断,在Python 2.4以上才有了三元操作. 语法格式: X if C else Y 有了三元表达式,你只需一行就能完成条件判断和赋值操作: x, y = 3, 4 if x<y : smaller= x else smaller =y 现在 只需一句: smaller = x if x<y else y 基本数据类型补充之 set set集合,是一个无序且不重复的元素集合. class set…
一.基础数据类型汇总补充 list  在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,,,] for i in range(len(lis)): print(i) # i = i = i = del lis[i] print(lis) # [,,,,] [, , ] [, ] lis = [11,22,33,44,55] 取一个新的列表 lis = [11,33,55] #第一种 li…
1 小数据池(节省内存) 只有数字和字符串中内存,储存在同一个内存地址中 数字的范围在-5~256中,字符串有以下两个特点:不能含有特殊字符,还有就s*20 不是同一个地址,而要*21就不是了 2 编码 ASCii 中   英文用 8 位 ,一个字节 unicode 中   英文用 32 位 ,四个字节 中文用 32 位 ,四个字节 utf-8 中   英文用 8 位 ,一个字节 中文用 24 位 ,三个字节 gbk 中   英文用 8 位 ,一个字节 中文用 16 位 ,二个字节 特点: 各个…
内容概要: 一.递归 二.匿名函数 三.关于python中的深浅拷贝与赋值 一.递归 递归就是函数本身调用自己,直到满足指定条件之后一层层退出函数 递归特性: 必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧.由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出) 示列1:求10!…
一.基础数据类型的补充 元组: 如果元组中只有一个数据,且没有逗号,则该‘元组’数据类型与里面的数据类型一致 列表: 列表之间可加不可减,可跟数字相乘 l1=['wang','rui'] l2=['chen'] l3=l1+l2 print(l3) 将列表中索引为奇数的元素,全部删除: l1=[11,22,33,44,55,66,77,88] l2=[] (1)del l1[1::2] print(l1) (2)for i in l1: if i % 2 ==1: l2.append(i) l1…
一.集合:类似列表,元组的存储数据容器,不同点是不可修改,不可重复.无序排列. 1.创建集合: (1).set1 = {'abby', 'eric'} result:{'eric', 'abby'} (2).set2 = set({'abby', 'eric'}) result:{'abby', 'eric'} 2.增 set1 = {'abby','eric','allan','davy','skye'} (1).set1.add('west') result:{'west','abby','…
拷贝是音译的词,其实他是从copy这个英文单词音译过来的,那什么是copy? copy其实就是复制一份,也就是所谓的抄一份.深浅copy其实就是完全复制一份,和部分复制一份的意思. 1.赋值运算 l1 = [,,,['barry','alex']] l2 = l1 l1[] = print(l1) # [, , , ['barry', 'alex']] print(l2) # [, , , ['barry', 'alex']] l1[][] = 'wusir' print(l1) # [, ,…