转于:Python中copy和deepcopy中的区别 博主:assan 一.序列中的 copy() 方法 # 此方法为浅度复制:复制的数会随着被复制数的嵌套序列的元素的改变而改变: # 功能:将一个列表复制给另一个列表 # 格式:list_1 = list_2.copy(),(字典.元组一样) 例一 a = list(range(10)) b = a.copy() print(b) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 例二:更改被复制的序列 a = list…
一.file/open 内置函数 file函数的方法: 注:file 和 open的用法和功能相同这里只对file进行分析 file(‘filename’,’mode’) file(‘filename’,’mode’).write(‘data’) 数据写入文件 file(‘filename’,’mode’).read() file(‘filename’,’mode’).flush() 文件刷新 file(‘filename’,’mode’).close() 文件关闭保存 mode参数详解,如下表…
方法一: class a: def __init__(self): self.__num = 1              #定义一个私有变量(以双下划线开头的是私有变量) def getNum(self):               #定义get方法 return self.__num def setNum(self,num_temp):      #定义set方法 if  num_temp ==1 or num_temp == 0: self.__num = num_temp num =…
一.sort()函数 描述 sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数. 语法 sort()方法语法: 1 list.sort(cmp=None, key=None, reverse=False) 参数 cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序. key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序. reverse -- 排序规则,reverse =…
""" join()方法:主线程A中,创建了子线程B,并且在主线程中调用了B.join()方法,那么主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行. setDaemon()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.setDaemon()方法,这个意思是把主线程A设置为守护线程,这个时候,要是主线程A执行结束了, 就不用管线程B是否完成,一并和主线程A退出 注意:setDaemon() 必须在start()方法调用之前设置 "…
共同点 只能作用于list类型(不能作用于tuple等其他类型) 单参数限制(不支持多参数) 不同点 list.append(object) 向列表中添加一个对象object. 使用append的时候,是将参数看作一个对象,整体作为一个元素打包添加到指定列表. list.extend(iterable) 把一个可迭代对象的内容迭代添加到列表中. 使用extend是将一个可迭代对象中的每个元素逐个地添加到列表中,可迭代对象中有几个元素,添加后的列表就比原列表多几个元素. 实例代码如下: L1 =…
模块解读: 浅复制: x = copy.copy(y)深复制: x = copy.deepcopy(y)(注:模块特有的异常,copy.Error) 深copy与浅copy的差别主要体现在当有混合对象时,即在一个对象中包含其他子对象,比如在一个字典中的一个value是一个列表,这时:浅copy,没有拷贝子对象,所以原始数据改变,子对象会跟着改变.深copy,包含拷贝对象中对子对象的拷贝,也就是说原始数据改变,子对象不会随之改变. 举个例子:info = { 'name':'webber', 'j…
Python中对于对象的赋值都是引用,而不是拷贝对象(Assignment statements in Python do not copy objects, they create bindings between a target and an object.).对于可变对象来说,当一个改变的时候,另外一个不用改变,因为是同时的,也就是说是保持同步的. 此时不想让他们同步的话可以使用copy模块,copy.copy()浅拷贝,copy.deepcopy()深拷贝. 前者是对整个对象的拷贝,对…
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1.copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2.copy.deepcopy 深拷贝 拷贝对象及其子对象 >>> import copy >>> a = [1,2,3,4,['a','b']] #原始对象 >>> b = a #赋值,传对象的引用 >>> c = copy.copy(a) >>&g…
字符串的格式化 在字符串中插入 %s ,作为占位符,后边儿再定义插入变量. 算术运算 % 取模   判断奇偶数 / 除法   有小于号 // 取整除  返回整数部分 逻辑运算 and or not 'str'.isdigit() 是判断一个字符串能否转换成数字 布尔运算 以下几种情况为假! []空列表 {}空字典 ()空元组,空集合 ''空字符串 0 位运算 == 二进制运算 列表的copy   浅copy与深copy的关系  用在内存占位的 id 理解! 字典 中的 fromkeys() 从序…
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象. 浅copy: a = [1, 2, [1, 2, 3]] b = a.copy() print(a) print(b) a.append(4) a[2][0] = 0 print(a) print(b) 输出结果: [1, 2, [1, 2, 3]] [1, 2, [1, 2, 3]] [1, 2, [0, 2, 3], 4] [1,…
今天在写代码的时候遇到一个奇葩的问题,问题描述如下: 代码中声明了一个list,将list作为参数传入了function1()中,在function1()中对list进行了del()即删除了一个元素. 而function2()也把list作为参数传入使用,在调用完function1()之后再调用function2()就出现了问题,list中的值已经被改变了,就出现了bug. 直接上代码: list = [0, 1, 2, 3, 4, 5] def function1(list): del lis…
Python Copy: 在Python语言中,分为浅拷贝和深拷贝两种形式,也就是官方文档中的Shadow copy和Deep copy.在对简单的对象(object)进行复制时,两者没有区别,如下面的代码所示: #简单对象的浅copy和深copy对比 import copy list1 = [1,2,3,4,5] #浅复制 Shadow_copy_list1 = copy.copy(list1) print(list1) #[1, 2, 3, 4, 5] print(Shadow_copy_l…
一.首先去python官网将两个版本下载并安装: 然后进入windows的环境变量,检查下面4个变量: 1.C:\Python272.C:\Python27\Scripts3.D:\software\python4.D:\software\python\Scripts 环境变量中缺少那个就增加那一个 进入CMD或者PowerShell 输入 py -2 (执行python2.x的版本) 输入py -3(执行python3.x的版本) 二.安装pip 首先下载pip安装包:https://pypi…
一.类的定义 在Python中,一切皆对象,即便是类本身,也是一种type类型的特殊对象. class Person: def __init__(self, name, age): self.name = name self.age = age def sayHi(self): print ('Hello, my name is {}, my age is {}.'.format(self.name, self.age)) print(type(Person)) # 返回值为type 二.sel…
Python中sort方法和sorted函数老猿在前面一些章节介绍过,具体语法及含义在此不再展开说明,但老猿在前面学习相关内容时,只使用了简单的案例,对这两个方法的key参数没有深入研究,总以为就是以前c语言排序算法中的cmp函数.今天在研究富比较方法的运用时才发现key根本不是cmp函数,而是一个只针对比较元素自身的函数,不像cmp函数是两个对象之间比较. 经查阅资料和测试,发现其实早期的Python版本中是提供了cmp函数的,其版本演进沿革如下: Python2.1以前的排序比较方法只提供一…
XPath语法和lxml模块 什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. XPath开发工具 Chrome插件XPath Helper. Firefox插件Try XPath. XPath语法 选取节点: XPath 使用路径表达式来选取 XML 文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似. 表达式 描述 示例 结果 nodena…
import   copy person =["name",[count,3000]] husband=copy.copy(person) wife=copy.copy(person) 以上为浅copy 可以理解为:老公和老婆 name不一样,但是他们有共同的存款账号…
python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 python 的一些内置常用核心模块 Python 常用的核心模块 一.collections模块 这是个有用的容器模块, 提供了许多有用的集合, 来弥补通用的内置容器:list, dict, tuple, set 1.1 namedtuple() namedtuple()是一个工厂函数, 用来创建一个tuple…
序列 序列是Python中最基本的数据结构,包括字符串.列表.元组. 序列,顾名思义,是有序的,序列都有索引,都能进行索引.切片(截取).加(连接).乘(倍增).检查成员的操作. 因为序列有序,可通过位置来区分元素,所以序列中可含有相同的元素. 序列的通用操作 1.索引 seq[index]   index从0开始,支持负数,-1表示最后一个元素. 2.切片(截取) seq[start:end]   可截取子序列,返回的是副本,原序列不变.缺省时默认start为0,end为-1. 3.+(连接)…
Python序列类型 序列:字符.列表.元组 所有序列都支持迭代 序列表示索引为非负整数的有序对象集合 字符和元组属于不可变序列,列表可变 1)字符 字符串字面量:把文本放入单引号.双引号或三引号中: ' '' ''' >>> str1 = ' hello, fanison ' >>> type(str1) str 如果要使用unicode编码,则在字符之前使用字符u进行标识 >>> str2 = u'你好,fanison' >>>…
序列化 Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类型]间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.load json模块 # json()将字符串形式的列表或字典转换为list或dict类型,json是所有语言相互通信的方式# 注意外层字符形式…
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.remove(x) 删除在列表中首次出现的指定元素x list.pop([index]) 删除并返回列表对象指定位置的元素,默认为最后一个元素 list.clear() list.index(x) 返回第一个值为x的元素的下标,若不存在值为x的元素则抛出异常 list.count(x) 返回指定元素x在列…
jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <…
什么要单独写个Java8新特性,一个原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章写到的stream方法进行过滤map集合.stream方法就是接口Collection中的default方法.所以准备专门写写关于java8新特性的文章,虽然现在10已经发布了.但还是要认真的去了解下新版本的变化. static方法 java8中为接口新增了一项功能:定义一个或者更多个静态方法.用法和普通的static方法一样. 代码示例 public interface…
java8中接口有两个新特性,一个是静态方法,一个是默认方法. static方法 java8中为接口新增了一项功能:定义一个或者多个静态方法. 定义用法和普通的static方法一样: public interface InterfaceTest { /** * 接口中的静态方法 */ static void testStatic() { System.out.println("我是接口的一个静态方法"); } } 调用的方式和静态类调用静态方法一样: InterfaceTest.tes…
static方法 java8中为接口新增了一项功能:定义一个或者更多个静态方法.用法和普通的static方法一样. 代码示例 public interface InterfaceA { /** * 静态方法 */ static void showStatic() { System.out.println("InterfaceA++showStatic"); } } 测试 public class Test { public static void main(String[] args)…
1.今天在做数据库升级的时候,遇到一个问题,就是onCreate方法和onUpgrade方法的执行时机的问题,这个当时在操作的时候,没有弄清楚,很是迷糊,后来看了相关的博客由于转发受限所以copy了一下,接下来就一起分享一下. 首先我们看看SQLiteOpenHelper类的源码: 它里面有一个重要的方法:getDatabaseLocked…
转自:python文件.文件夹操作OS模块   '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:os.remove()4.删除多个目录:os.removedirs(r“c:\python”)5.检验给出的路径是否是一个文件:os.path.isfile()6.检验给出的路径是否是一个目…
python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 rlcompleter:GNU按行读取的实现函数 二进制数据 struct:将字节解析为打包的二进制数据 codecs:注册表与基类的编解码器 数据类型 datetime:基于日期与时间工具…