错综复杂的复制

浅拷贝

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条件(可选)

执行过程:

  1. 从可迭代对象中拿出一个元素

  2. 通过if条件(如果有的话),对元素进行筛选

    若通过筛选,则将元素传给表达式

    若未通过,则进入下一次迭代

  3. 将传递给表达式的元素,代入表达式进行处理,产生一个结构

  4. 将第三步产生的结果作为列表的一个元素进行存储

  5. 重复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

列表,元组,字符串,字典,集合,文件

装饰器

需要对已开发上线的程序添加某些功能

不能对程序中函数的源代码进行修改

不能改变程序中函数的调用方式

高阶函数

  1. 接收函数作为参数
  2. 或者返回一个函数

满足上述条件之一的函数称之为高阶函数

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 小提高相关推荐

  1. 开课吧python小课值得么-材料学硕博士建议掌握的高效论文工具

    一位土博哥们最近频繁深夜找我语音,每次聊的内容都是老三样:重读文献.改hypothesis.重做实验. 几经波折的文章以为终要见刊,结果又要大手术,土博心力交瘁,甚至有点想放弃. 每一次"论 ...

  2. ​【Python基础】告别枯燥,60 秒学会一个 Python 小例子(文末下载)

    本文推荐一个python的傻瓜式的学习资源,内容简单易懂,让人可以在60 秒学会一个 Python 小例子 当前库已有 300多 个实用的小例子 本文来源:https://github.com/jac ...

  3. 风变python小课 基础语法12 作业1_菜鸟的风变编程Python小课之路,这么学编程也可以?...

    原标题:菜鸟的风变编程Python小课之路,这么学编程也可以? 作为职场菜鸟,我感觉我就是现实生活里的孙弈秋,虽然学历没有他那么惨,但是在公司总感觉不那么受待见,可能因为我们这个行业本身竞争大吧,领导 ...

  4. 告别刷抖音!30秒一个Python小例子,总有一款适合你

    小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...

  5. Python小数据池,代码块

    今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 ...

  6. 告别刷抖音!30秒一个Python小例子,总有一款适合你,赶紧收藏!

    小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...

  7. 开课吧python小课学了有用吗-考研人注意了,停下手头的活,再忙也要看一下这个!...

    原标题:考研人注意了,停下手头的活,再忙也要看一下这个! 不少考研的同学,都会选择开启就业双保险,备考同时也得追赶着找工作的末班车. 不过每一次找实习.找工作,似乎都没那么容易.后台陆续收到不少同学的 ...

  8. 开课吧python小课学了有用吗-未来2年,会计发展新趋势,你有必要了解一下......

    原标题:未来2年,会计发展新趋势,你有必要了解一下... 最近大家为了工作,都太拼了! 27岁的公司财务小薇,以前天天朝9晚6, 现在10点前几乎没下过班: 32岁的主管芳芳,过去习惯了早早下班陪孩子 ...

  9. 开课吧python小课学了有用吗-和年薪百万的CFO大佬聊天后,我慌了!

    原标题:和年薪百万的CFO大佬聊天后,我慌了! "我太失败了!"上周,小志给我发来信息. 小志毕业后就来到一家公司做财务,两年来任劳任怨,说已经有3年的工作经验一点也不过分,数据统 ...

最新文章

  1. 通过jquery的serializearray处理表单数据成json格式,并提交到后台处理
  2. ewebeditor 5.2 列目录漏洞
  3. Table 'mysql.plugin' doesn't exist引发de血案
  4. boost::fusion::transform_view用法的测试程序
  5. 如何在MATLAB下把模糊推理系统转化为查询表(转载)
  6. 手机号星号_word把个人信息中的手机号其中四位设成星号的操作步骤图解
  7. 过剩通勤应用——线性规划问题解决开源工具(下篇)
  8. mysql 大小写敏感设置_MySQL 中的大小写敏感设置
  9. FlinkSQL建表语句与插入语句
  10. 微信公众号网页开发逻辑梳理
  11. 游戏服务器背包设计与开发
  12. 多IP服务器有什么用
  13. 企业最需要的邮件服务器5大功能模块
  14. vue项目的导出功能
  15. java飞机大战程序图片不显示
  16. realsense中IMU的简单使用与学习
  17. 期货开户怎么选择好的期货公司 ?
  18. 使用idea搭建maven+ssm项目
  19. 北京大学计算机博士金钊,她是北大工科博士生,颜值胜过学霸武亦姝,深受理科男生的喜爱...
  20. W10打开bat文件一闪就没了

热门文章

  1. t-sql执行结果_解释T-SQL查询的执行计划
  2. ssis zip压缩文件_在SSIS中处理参差不齐的正确格式的文件
  3. SQL Server内存性能监视工具
  4. SQL Server执行计划面试问题
  5. 行存储索引改换成列存储索引_列存储索引增强功能–数据压缩,估计和节省
  6. Assembly generation failed Referenced assembly ‘xxx’ does not have a strong name
  7. bzoj3744: Gty的妹子序列 (BIT 分块)
  8. Spring学习之路-从入门到放弃
  9. 2016年1月书单推荐
  10. 6个用于大数据分析的最好工具(转)