python 小提高
错综复杂的复制
浅拷贝
list1=[1,2,3,4]
list2=list1 #或者list1[:] list(list1)均可实现浅拷贝
list2.append(5)
print(list1)
print(list2)[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
修改一个列表,另外一个列表也会变换
列表的底层实现:
列表内的元素可以分散的存储在内存中
列表存储的,实际上是这些元素的地址------地址的存储在内存中是连续的
浅拷贝是将地址复制了一份给别的变量名
但是对元组操作时又不一样,这个时候像深拷贝
深拷贝 使用copy()
list1=[1,2,3,4]
list2=list1.copy()
list2.append(5)
print(list1)
print(list2)[1, 2, 3, 4]
[1, 2, 3, 4, 5]
可变类型: 列表,字典,集合
id保持不变,但是里面的内容可以变
可变对象+=操作 实际在原对象的基础上就地修改
更加简洁的语法
创建多维列表
ls=[[0]*10 for i in range(5)]
ls
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
解析语法的基本结构----以列表解析为例(也称为列表推导)
[expression for value in iterable if conditihon]
三要素: 表达式,可迭代对象,if条件(可选)
执行过程:
从可迭代对象中拿出一个元素
通过if条件(如果有的话),对元素进行筛选
若通过筛选,则将元素传给表达式
若未通过,则进入下一次迭代
将传递给表达式的元素,代入表达式进行处理,产生一个结构
将第三步产生的结果作为列表的一个元素进行存储
重复1-4 步,直到迭代对象迭代结束,返回新创建的列表
#求20以内奇数的平方
res=[i**2 for i in range(1,21) if i%2==1]
print(res)[1, 9, 25, 49, 81, 121, 169, 225, 289, 361]
支持多变量
x=[1,2,4]
y=[2,3,4]
res=[i*j for i, j in zip(x,y)]
res[2, 6, 16]
支持循环嵌套
其它字典,集合的推导也类似
条件表达式
expr1 if condition else expr2
如果条件成立,执行expr1
如果不成立,执行expr2
#将n的绝对值赋予x
n=10
x=n if n>=0 else -n
x
生成器
采用惰性计算的方式
无需一次性存储海量数据
一边执行一边计算,只计算每次需要的值
实际上一直在执行next()操作,直到无值可取
生成器表达式 ()
res=(i**2 for i in range(1000000))
生成器函数----yield
def fib(max):n,a,b=0,1,1while n<max:yield aa,b=b, a+bn=n+1
fib(10)
在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行
迭代器
可迭代对象:
可以直接作用于for循环的对象统称为可迭代对象:iterable
列表,元组,字符串,字典,集合,文件
装饰器
需要对已开发上线的程序添加某些功能
不能对程序中函数的源代码进行修改
不能改变程序中函数的调用方式
高阶函数
- 接收函数作为参数
- 或者返回一个函数
满足上述条件之一的函数称之为高阶函数
def squ(x):return x**2def pow (fun):return funf=pow(squ)
f(8)64
#上面的pow便是一个高阶函数
嵌套函数
在函数内部定义一个函数
def outer():print("outer is running ")def inner():print("inner is ruuning ")inner()outer()outer is running
inner is ruuning
先执行外部函数,再执行内部函数
闭包:延申了作用域的函数
如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包
闭包时由函数及其相关的引用环境组合而成的实体
一旦在内层函数重新定义了相同名字的变量,则变量成为局部变量
python 小提高相关推荐
- 开课吧python小课值得么-材料学硕博士建议掌握的高效论文工具
一位土博哥们最近频繁深夜找我语音,每次聊的内容都是老三样:重读文献.改hypothesis.重做实验. 几经波折的文章以为终要见刊,结果又要大手术,土博心力交瘁,甚至有点想放弃. 每一次"论 ...
- 【Python基础】告别枯燥,60 秒学会一个 Python 小例子(文末下载)
本文推荐一个python的傻瓜式的学习资源,内容简单易懂,让人可以在60 秒学会一个 Python 小例子 当前库已有 300多 个实用的小例子 本文来源:https://github.com/jac ...
- 风变python小课 基础语法12 作业1_菜鸟的风变编程Python小课之路,这么学编程也可以?...
原标题:菜鸟的风变编程Python小课之路,这么学编程也可以? 作为职场菜鸟,我感觉我就是现实生活里的孙弈秋,虽然学历没有他那么惨,但是在公司总感觉不那么受待见,可能因为我们这个行业本身竞争大吧,领导 ...
- 告别刷抖音!30秒一个Python小例子,总有一款适合你
小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...
- Python小数据池,代码块
今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 ...
- 告别刷抖音!30秒一个Python小例子,总有一款适合你,赶紧收藏!
小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...
- 开课吧python小课学了有用吗-考研人注意了,停下手头的活,再忙也要看一下这个!...
原标题:考研人注意了,停下手头的活,再忙也要看一下这个! 不少考研的同学,都会选择开启就业双保险,备考同时也得追赶着找工作的末班车. 不过每一次找实习.找工作,似乎都没那么容易.后台陆续收到不少同学的 ...
- 开课吧python小课学了有用吗-未来2年,会计发展新趋势,你有必要了解一下......
原标题:未来2年,会计发展新趋势,你有必要了解一下... 最近大家为了工作,都太拼了! 27岁的公司财务小薇,以前天天朝9晚6, 现在10点前几乎没下过班: 32岁的主管芳芳,过去习惯了早早下班陪孩子 ...
- 开课吧python小课学了有用吗-和年薪百万的CFO大佬聊天后,我慌了!
原标题:和年薪百万的CFO大佬聊天后,我慌了! "我太失败了!"上周,小志给我发来信息. 小志毕业后就来到一家公司做财务,两年来任劳任怨,说已经有3年的工作经验一点也不过分,数据统 ...
最新文章
- 通过jquery的serializearray处理表单数据成json格式,并提交到后台处理
- ewebeditor 5.2 列目录漏洞
- Table 'mysql.plugin' doesn't exist引发de血案
- boost::fusion::transform_view用法的测试程序
- 如何在MATLAB下把模糊推理系统转化为查询表(转载)
- 手机号星号_word把个人信息中的手机号其中四位设成星号的操作步骤图解
- 过剩通勤应用——线性规划问题解决开源工具(下篇)
- mysql 大小写敏感设置_MySQL 中的大小写敏感设置
- FlinkSQL建表语句与插入语句
- 微信公众号网页开发逻辑梳理
- 游戏服务器背包设计与开发
- 多IP服务器有什么用
- 企业最需要的邮件服务器5大功能模块
- vue项目的导出功能
- java飞机大战程序图片不显示
- realsense中IMU的简单使用与学习
- 期货开户怎么选择好的期货公司 ?
- 使用idea搭建maven+ssm项目
- 北京大学计算机博士金钊,她是北大工科博士生,颜值胜过学霸武亦姝,深受理科男生的喜爱...
- W10打开bat文件一闪就没了
热门文章
- t-sql执行结果_解释T-SQL查询的执行计划
- ssis zip压缩文件_在SSIS中处理参差不齐的正确格式的文件
- SQL Server内存性能监视工具
- SQL Server执行计划面试问题
- 行存储索引改换成列存储索引_列存储索引增强功能–数据压缩,估计和节省
- Assembly generation failed Referenced assembly ‘xxx’ does not have a strong name
- bzoj3744: Gty的妹子序列 (BIT 分块)
- Spring学习之路-从入门到放弃
- 2016年1月书单推荐
- 6个用于大数据分析的最好工具(转)