1. 深拷贝 1.1 类型1 注意: d没有改变, 因为d所拷贝的数据没有改变, 而是c往后添加数据. 1.2 类型2: 元组 如果copy.copy拷贝的是元组是深拷贝! 不会进行浅拷贝, 仅仅是指向, 因为元组是不可变类型, 因此用copy.copy的时候会自动判断. 2. 浅拷贝 2.1 类型1 2.2 类型2 如果 用copy.copy, copy.deepcopy对一个全部是不可变类型的数据进行拷贝, 那么他们结果相同, 都是引用指向 如果 拷贝的一个拥有 可变类型的数据, 即使元组是…
今天看了几篇关于python拷贝的博文,感觉不太清楚,所以我就自己做实验试一下,特此记录. 拷贝是针对组合对象说的,比如列表,类等,而数字,字符串这样的变量是没有拷贝这一说的. 实现拷贝有: 1.工厂函数 2.切片操作 3.对象的copy方法 4.copy模块的copy方法 Notice:在python2.2之后将一些原来的内建函数和一些没有的内建函数转换成了工厂函数,而这些内建函数一些现在仍然有. 工厂函数虽然貌似函数,但它是一个类. 内建函数大概有这些(未详细考证): int(),long(…
笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔细学一遍 基础操作: #python newer #-*- coding:utf-8 -*- print "我能吞下玻璃而不伤身体" #a shit print 3+1>2*9 print 2333333*2.0/2 shit=2333333.333 print shit name=…
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但字符串是不可变的,所有元素赋值.切片赋值等操作都是非法的. 2.设置字符串的格式 这里设置字符串格式的基本思想是对字符串调用方法format,并提供要设置其格式的值.每个值都被插入字符串中,以替换用花括号 {} 括起的替换字段.要在最终结果中包含花括号,可以在格式字符串中使用两个花括号(即{{...…
本文主要内容 序列类型分类: (1)容器序列.扁平序列 (2)可变序列.不可变序列 列表推导式 生成器表达式 元组拆包 切片 排序(list.sort方法和sorted函数) bisect python高级——目录 文中代码均放在github上:https://github.com/ampeeg/cnblogs/tree/master/python高级 序列类型分类 所谓序列,即元素有序排列,python标准库用C实现了丰富的序列类型,按照序列中是否可存放不同类型的数据分为"容器序列"…
深拷贝.浅拷贝 如果拷贝的时候共享被引用的对象就是浅拷贝,如果被引用的对象也拷贝一份出来就是深拷贝.(深拷贝就是说重新new一个对象,然后把之前的那个对象的属性值在重新赋值给这个用户) using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestC…
直接赋值: 对象的引用,也就是给对象起别名 浅拷贝: 拷贝父对象,但是不会拷贝对象的内部的子对象. 深拷贝: 拷贝父对象. 以及其内部的子对象 在之前的文章中,提到可变对象和不可变对象,接下来也是以这两者的区别进行展开 直接赋值 对于可变对象和不可变对象,将一个变量直接赋值给另外一个变量,两者 id 值一致,其实本质上是将变量量绑定到对象的过程. >>> a=1 >>> b=a >>> id(a) == id(b) True >>>…
1.循环删除list 1 ll = [1,1,32,4,3,2,3,2,4,6,4,5,6,7,8] 2 for i in ll: 3 if i % 2 !=0: 4 ll.remove(i) 5 print(ll) 执行结果如下: 该段代码有问题,循环删除list,会导致下标错乱 解决办法1,代码如下: 1 import copy 2 3 ll = [1,1,32,4,3,2,3,2,4,6,4,5,6,7,8] 4 ll2 = copy.deepcopy(ll)#深拷贝 5 for i in…
深拷贝定义(deepcopy) 在Python中,由于一切皆对象,所以任何变量都可以被引用,也即可以被赋值给任何变量.但是在Python中,给变量赋值,是区分的,一般情况下,Python中的变量赋值都是浅拷贝,如果需要使用深拷贝,需要特别指定. 深拷贝是对原对象的“复制以及粘贴”,其实就是在内存中重新开辟了一个新的内存空间来存放这一份数据,两个变量其实是两个不一样的变量,仅仅是数据值相同而已,对两个变量的操作不会相互影响. 浅拷贝(copy) 在Python中进行数据的浅拷贝时,如果此时浅拷贝的…
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,["a","b"]] (1)直接赋值,传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变 >>> b=list>>> print b[1, 2, 3, ['a', 'b']]>>> list.append(5)…
标识符和关键字 1,邮箱的Python标识符是任意长度的非空字符序列(引导字符+后续字符.) python标识符必须符合两条规则--标识符区分大小写 (1)只要是unicode编码字母都可以充当引导字符,包括unicode编码中认为是数字的任意字符. (2)关于(_) 的使用,名的开头和结尾尽量避免使用(_) for _ in [1,2,3,4,5] print(" _ 可省略变量") Intergral类型 2,python提供了两个内置订单Intergral类型:int,bool…
原文地址https://www.cnblogs.com/xueli/p/4952063.html 赋值:a = [1,2,3,["a","b"]]  b=a,那么当 a=[1,2,3,["a","b","c"],5] 时,b 也等于[1,2,3,["a","b","c"],5]  赋值实际上是对象的引用 浅拷贝:a = [1,2,3,["…
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,["a","b"]] (1)直接赋值,传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变 >>> b=list>>> print b[1, 2, 3, ['a', 'b']]>>> list.append(5)…
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,["a","b"]] (1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变 >>> b=alist>>> print b[1, 2, 3, ['a', 'b']]>>> alist.ap…
知识点一:urllib的详解及基本使用方法 一.基本介绍 urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存. 二.什么是Urllib Python内置的Http请求库,包含四个模块: urllib.request 请求模块   (模拟浏览器,可以用来发送request和获取request的结果) urllib.error 异常处理模块 (包含了urllib.request产生的异常) url…
装饰器-初级 在不改变原有函数逻辑功能的基础上,为函数添加新的逻辑功能.使代码可读性更高.结构更加清晰.冗余度更低 简介 """ 闭包: 函数嵌套的格式就是闭包.写装饰器的闭包是外层函数的返回值就是内层函数 装饰器:一种特殊的闭包 加上 语法糖[@语法]组成的 其作用:在不修改原有功能的基础上,为该功能添加其他新的需求.不管在函数中添加多少装饰,函数的名字没有变化 在函数中的使用 装饰器的特殊闭包:在外层函数中声明一个内层函数,外等函数的返回值是内层函数 外层函数的参数是:f…
一.算法 1.归并排序 2.快速排序 3.算法复杂度 4.哈希表数据结构 二.数据库 1.设计一个用户关注系统的数据库表 1.设计一个用户关注系统的数据库表,写三个相关的SQL语句两张表,一张user表,一张relation表 # 建立user表 ) not null) # 建立relation表:uid--用户ID,rid--用户关注的人ID create table relation(uid int not null,rid int not null) # 1.查询用户a关注的人 selec…
---恢复内容开始--- 一. python几种数据类型的比较. 从以下几个方面比较: 1. 是否可变. 不可变类型:变量的值可以发生变化,id也变了,相当于创建了一个新的对象,所以一修改值,id就变了,这种类型称之为不可变类型. 可变类型:变量的值可以发生变化,而且 id不会变,所以称之为可变类型. 例子: #数字类型样例x=10 print (id(x))输出:1374668752 # 修改x的值为100,看看id变了吗?x=100print (id(x))输出:1374671632可以看到…
注意:这里提到是list的隐式转换例如 a=[1,2,3]def test(n):n[2] = n[2]*2c=a此时是浅拷贝,当调用test(c)时,可以看到a也发生了变化c=[1,4,3]a=[1,4,3]要想址传递(即深拷贝)需要像这样字:d=a[:]此时在调用test(d)可以发现:d=[1,8,3]a=[1,4,3]切记:当del a[:]的时候,d也被删除了,而c却是独立的,不会被a影响…
浅拷贝: >>> a = [1, 2, 3] >>> b = a >>> a [1, 2, 3] >>> b [1, 2, 3] >>> id(a) 2154993843464 >>> id(b) 2154993843464 浅拷贝把a 赋值给了b,并不是直接再给b来了一个列表而是a和b都指向了同一个地址. 深拷贝: 使用copy模块下的deepcopy()来完成深拷贝 >>> i…
这三种 的区别就是 复制的变量 是否是原变量的引用. 赋值:只是原变量的引用. 浅拷贝和深拷贝的区别 需要通过 子元素 区分 浅拷贝:子元素的 引用相同 深拷贝:所以引用都不相同,完全复制一份 这三种不适合 int,str,float,bool等类型.因为这些类型在值改变后,被赋值的变量值不变.…
1. List和Tuple List和Tuple是Python的内置的数据类型,区别在于可变和不可变,List用[]表示,Tuple用()表示,它们之间可以相互转换: # List to Tuple myList = [1, 2, 3, 4] myTuple = tuple(myList) # Tuple to List myTuple = ("A", "B", "C") myList = list(myTuple) 可以使用len()函数计算长…
1:Python中,内置函数名相当于一个变量,指向内置函数.所以可以通过函数名调用相应函数,也可以给函数名赋值,改变它的内容,如:可以把另一个函数变量赋值给它,那它就指向了所赋值的函数了. 2:高级函数:Python中,可以把一个函数变量作为函数参数来使用.参数中有函数变量的函数,称之为高阶函数. map(f,list)函数:定义一个函数f,把f和一个list作为map()的参数,可=可以对list的每一个元素进行f操作,并返回一个新的list. reduce(f,list,init)函数:对l…
上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法.一.数据类型是什么鬼?计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.二.整形和浮点型整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄.工资.成绩等等这样的数据就可以用int类型,有正…
一.if else: #!/usr/bin/python x = int(raw_input('please input:')) if x >= 90: if x >= 95: print 'a+' else: print 'a' elif x >= 80: if x >= 85: print 'b+' else: print 'b' elif x >= 70: if x >= 75: print 'c+' else: print 'c' else: if x >…
2018年年初写了第一篇博客,说要做一个认真的技术人 https://www.cnblogs.com/yingchen/p/8455507.html 今天已经是11月19日了,这是第二篇博客,看来坚持确实是个好难的东西.虽然没写笔记,今年一年对python的使用还是可以的, 今天继续: 对于列表推导式和生成器的使用是绝对需要学会的,它会让你的代码更为优雅,更加简单 symbols = 'thisisasymbol' codes=[] codes = [ ord(symbol) for symbo…
1. MySQL基本使用 1.1 数据库简介 Mysql: 关系型数据库,做网站 redis:当作缓存 mongodb:非关系型数据库,做爬虫 SQL语句: DQL:数据查询语言,用于对数据进行查询,如select DML:数据操作语言,对数据进行增加.修改.删除,如insert.update.delete TPL:事务处理语言,对事务进行处理,包括begin transaction.commit.rollback DCL:数据控制语言,进行授权与权限的回收,如grant.revoke DDL:…
多继承以及MRO顺序 1. 单独调用父类的方法 # coding=utf-8 print("******多继承使用类名.__init__ 发生的状态******") class Parent(object): def __init__(self, name): print('parent的init开始被调用') self.name = name print('parent的init结束被调用') class Son1(Parent): def __init__(self, name,…
在程序中有些数据为固定格式时,即字段数量确定.字段位置顺序确定不变,我们就可以用元组来储存.使用元组的优势是储存空间很小,访问速度也很快.如下代码对每个学生信息用元组来表示: # ('Jim', 16, 'male', 'jim8726@gmail.com') # ('LiLei', 17, 'male', 'lilei8928@qq.com') # ('Lucy', 16, 'female', 'lucy123@yahoo.com') student = ('Jim', 16, 'male',…
Python基础 对于Python,一切事物都是对象,对象基于类创建         不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上海', '深圳'] 数据类型 1.如何查找数据类型支持的方法 python终端: name=”koka“ type(name) <class 'str'> help(str) #即可显示所有字符串支持的方法或者dir(name) #也可以显示对象中的所有特性. 使用Pycharm: 在py文件中输…