深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表中的不可变类型的地址直接拿过来,但是可变类型的地址一定重新开辟空间 # ls内部的所有类型的值发生改变,ls3都不会随之变化 可变对象 指 可以在原处修改,而不用创建新的对象(包括列表,字典,集合):不可变对象指 不支持在原处修改,只能通过表达式创建新的对象,然后把结果分配给变量(包括 数字,字符串…
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特点:有序,数据可变,数据可重复,数据类型可不同,可嵌套. 创建一个列表:tl = [1, 'Hello', 1, "你好", [2, 'World']] 初步可以看到它的语法.数据可重复.数据类型可不同.可嵌套等特点,如果用print函数多输出几次就会发现它是有序的,下面我们看一下列表的常…
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.pyt…
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'],7-9j] 1.list(str):将str转换成list类型,str可以使字符串也可以是元组类型 2.aList.append('test'):追加元素到列表中去 3.del aList[1]:删除列表中下标为1的元素 del aList:删除整个列表 4.cmp(list1,list2):比较两个列…
先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.python的列表个跟清单的道理是一样的,特点就是:可重复,类型可不同.类型不同也是跟数组最本质的区别了.pyt…
1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 split 切割字符串sep:指定按照什么进行切割,默认按照空格切割 # maxsplit:指定最大切割次数,默认不限制次数 splitlines 按照换行进行切割 count 搜索指定字符串出现了几次 strip 去除两边空格 rstrip lstrip startswith()是否以...开头…
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    #写文件    f = open(path, "wb")    pickle.dump(data,f)    f.close() #读文件    f1 = open(path,"rb")    tempList = pickle.load(f1)    print(tem…
目录: 1.break.continue 2.for循环 3.数据bytes类型 4.字符串与字节的关系 5.变量指向与深浅拷贝 6.set集合 7.文件操作 一.break.continue break 语句,break 语句用于跳出当前循环体 continue语句,跳过当前循环块中的剩余语句,然后继续进行下一轮循环 pass 语句是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句 二.For循环 Python for循环可以遍历任何序列的项目,如一个列表或者一个字…
小学生都能学会的python(深浅拷贝) join() 把列表中的每一项用字符串拼接起来 # lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"] # # 遍历列表. 把列表中的每一项用"_" 做拼接 # s = "_".join(lst) # 把列表转化成字符串 # print(s) # # # s1 = "汪峰_吴君如_李嘉欣…
目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用:元组一创建就被写死了 定义方式:()内用逗号隔开多个元素(可以为任意数据类型) tup = tuple((1, 2, 3)) # 如果元组只有一个元素,必须要加逗号 tup = (1,) 使用方法 索引取值 print(tuo[0] 索引切片 print(tup[0:3]) for循环 for i…
Python深浅拷贝剖析 Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 创建列表变量Alex,变量包含子列表,通过变量Alex给变量lzl赋值,然后对变量Alex的元素进行修改,此时lzl会有什么变化呢?让我们通过内存地址分析两者的变化 # 对象赋值 import copy #import调用copy模块 Alex = ["Alex", 28, ["…
列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list(['a','b','c'])# l1=list('hello')# print(l1) # 常用操作+内置的方法 # 按索引存取值(正向存取+反向存取):即可改也可以取l = ['a', 'b', 'c']print(id(l))print(l[-1])l[0] = 'A'print(id(l))pri…
底层剖析Python深浅拷贝 拷贝的用途 拷贝就是copy,目的在于复制出一份一模一样的数据.使用相同的算法对于产生的数据有多种截然不同的用途时就可以使用copy技术,将copy出的各种副本去做各种不同的操作. 值得一提的是绝大部分编程语言中对于copy都有深浅拷贝的概念,所以充分的理解本章节的知识也是在为今后学习其他编程语言少走弯路. 在Python中,除开手动deepcopy(),其他的任何操作都是浅拷贝. Python = 赋值示例 好了,废话不多说.直接进入主题,上代码: >>>…
2.2 list的方法 # 增 list.append() # 追加 list.insert() # 指定索引前增加 list.extend() # 迭代追加(可迭代对象,打散追加) # 删 list.pop() # 指定索引删除(默认删最后一个元素,返回值为删除对象,没有则报错) list.remove() # 指定元素删除(若有相同元素,默认删除第一个) list.clear() # 清空 ​ # 其他 list.index() # 获取元素的索引(可指定范围) list.count() #…
1.列表 2.元组 3.字典 4.字符串 5.set集合 6.深浅拷贝…
首先我们来讲一下深浅拷贝 1:值拷贝,假设一个列表等于L1 再定义一个L2=L1  这样就是值拷贝 L2只是存的L1存列表的地址,所以当L1发生改变,L2也随之改变 2:浅拷贝,L2=L1.copy() 这样L2会新开辟一块内存地址放L1的所有值 但是会把L1的所有值的地址都直接复制过来放进去 所以如果L1里面有一个列表 如果这个列表里面值发生改变但是列表的内存地址不会改变所以L2里面还是存着这个列表的内存地址 所以L1里面的小列表发生改变,L2还是会跟着改变 3:深拷贝,from copy i…
菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================================== 用途 用来存取多个同属性的值,用索引对应值,索引反映的是位置 定义方式 在[]内用逗号分隔开多个任意类型的值 l = [1, 2.2, 'str', 'list', '...'] # l= list([1, 2.2, 'str', 'list', '...']) 类…
fromkeys语法: dic = {"apple":"苹果", "banana":"香蕉"} 返回新字典. 和原来的没关系 ret = dic.fromkeys('orange',['橘子,栀子']) # 直接用字典去访问fromkeys不会对字典产生影响 a = ["哈哈","呵呵", "吼吼"] ret = dict.fromkeys("abc&quo…
一.深浅拷贝 1.浅拷贝,只会拷贝第一层 s = [1, 'ss', '小可爱'] s1 = s.copy() print(s1) >>> [1, 'ss', '小可爱'] s = [1, 'ss', '小可爱'] s1 = s.copy() s1[0] = 3 #修改s1的值 print(s1) >>> [3, 'ss', '小可爱']   #浅拷贝,只会拷贝第一层,修改完s1里面列表的值后,数据源也会改变 s = [[1, 2], 'ss', '小可爱'] s1 =…
列表补充 补充方法 清空列表 clear # clear 清空列表 l = [1, 2, 3, 4, 4] print(l.clear()) # clear没有返回值(None) print(l) # None # [] 统计列表中指定元素出现的次数 count # count 统计一个元素在列表中出现了几次 l = [1, 2, 3, 4, 4] print(l.count(4)) 列表反向.排序   reverse   sort(带参数,可指定按正序/ 反序排) # reverse 将列表翻…
元组(tuple) 元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开即可.与列表不同的是,元组的元素不能修改.如下代码所示: tup1 = () tup2 = (1) tup3 = (1,) tup4 = ('test', 1, False) tup5 = (1, 2, 3, 4, 5) tup6 = "a", "b", "c", "d" print(type(tup1)) print(type(tup2)) prin…
初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况. 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身. 引用…
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 1 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 1 2 3 4 5 6 7 8 >>> names[0] 'Alex' >>> names[2] 'Eric' >>>…
1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6,7,9] list_1=set(list_1) list_2 = set([2,6,0,66,22,8,4]) print(list_1,list_2) print(list_1,type(list_1)) 运行结果如下: D:\python35\python.exe D:/python培训/s1…
起初,关于python的深浅拷贝,总是习惯去用传值传址的方式去考虑,发现总是get不到规律,容易记混. python有着高度自治的内存管理,而不可变对象的内存分配,则是能省则省,就是说,无论用什么拷贝,拷贝得到的不可变对象的内存地址都与先前一样,现在想想,仍然觉得很奇怪.所以,我就干脆从可变对象和不可变对象出发,重新考虑这个问题,把拷贝的效果和对象内存地址的变化理个清楚.   经过实验,有如下结论:   从内存地址上来看, 不可变对象 无论深浅copy还是赋值,在操作完成后,新旧不可变对象的内存…
###########################总结########################### 1. 基础数据类型补充 大多数的基本数据类型的知识.已经学完了 a='aaaa' lst=['linux','alex','xsb'] s='+'.join(lst) print(s) ##linux+alex+xsb "*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串 spl…
一.列表 需要安利一下:列表和字符串数是不一样的.进行操作时列表可以发生改变,而字符串不可以,所以直接在原来的对象上操作. 1.列表的增加 def append(self, p_object): # real signature unknown; restored from __doc__ """ L.append(object) -> None -- append object to end """ pass 用法:在列表的最后追加一个对…
主要理解新与旧究竟在哪里 这样也就理解了 深浅拷贝 先说说赋值,事实上python中的赋值事实上是赋值了一个引用.比如: foo1=1.0 foo2=foo1 用操作符is推断时.你能够发现结果是true.是由于python是先创建了一个对象1.0,然后这个对象的引用又被赋值给了foo1和foo2,可是假设是这样: foo1=1.0 foo2=1.0 这时你会发现.这事实上是创建了两个不同的对象.用内建函数id()能够发现,二者的身份不同. 事实上python另一个特例,比如: a=1 b=1…
深浅拷贝 在Python中使用copy模块用于对象的拷贝操作. 该模块提供了两个主要的方法:浅拷贝 copy.copy() 深拷贝 copy.deepcopy() 1.浅拷贝(copy) 浅拷贝: 不管是多么复杂的数据结构,浅拷贝只会拷贝第一层. 浅拷贝是对于一个对象的顶层拷贝 通俗的理解是:拷贝了引用,并没有拷贝内容 2.深拷贝(deepcopy) 深拷贝会完全复制原变量的所有数据(递归性质的拷贝),在内存地址中生成一套完全一样的内容,我们对这两个变量中的一个进行任意修改都不会影响另一个变量…