博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础要点总结
阅读量:6164 次
发布时间:2019-06-21

本文共 1316 字,大约阅读时间需要 4 分钟。

hot3.png

深拷贝和浅拷贝:

  1. 浅拷贝:a=b,只是传递对象b,改变a即改变b,拷贝的是引用;
  2. copy.copy()和copy.deepcopy()区别,deepcopy拷贝的是对象,会将将被拷贝对象内部的可变对象一起拷贝
  3. 可用id做对比

用分片改变列表:

  • >>> a=['123','456','789']
  • >>> a[0:3]
  • ['123', '456', '789']
  • >>> a[0:3]='abc'
  • >>> a
  • ['a', 'b', 'c']

range和xrange(2+):

  1. range返回整个列表
  2. xrange本质是生成器

for和while:

  • for...in...本质为:
while True;    try:        next()    catch StopIteration

map,filter和reduce:

  1. map,对序列里每个值操作:
    map((lambda a: a+100), list)or map((lambda a,b: a+b, la,lb ))

     

  2. filter,对序列中每个值进行过滤:
    filter((lambad a: a>0), ls)

     

  3.  reduce,累计序列中各个值:
    reduce((lambda a1,a2: a1 + a2),ls)

     

生成随机数:

  • 生成>=a&&<=b的任一整数:
    random.randint(a, b)

     

  • 可按步长生成随机数,stop必须指定:

    random.randrange(start, stop, step)

     

  • 生成0到1的浮点数:
    random.random()

     

安全关闭资源:

  • with关键字和try...except...finally...等效应用

装饰器特点:

  • 代码不做任何修改的前提下,增加额外功能,返回的是函数对象。(待加程序说明)

生成器特点(python3中大都为生成器,以提高效率):

  • 一次性,可节省内存
  • 生成器函数和一般函数最大区别为生成器每次yields一个值,而不是返回
  • 推导式表达式用(),不是[]
  • 生成器函数和表达式都是迭代器,或者说返回一个迭代器对象,只支持一次迭代活动

迭代器:

  • I=iter(L)    I.next(),L可迭代对象,I迭代器
  • 迭代工具:for,推导式等
  • 常用迭代器(3+):range,xrange(2+),map,zip,filter
  • 迭代可手动迭代或使用迭代工具自动迭代

Python常用的垃圾处理机制:

  • 引用计数
  • 标记清除
  • (。。。)

Python多线程问题:

  • python优于GIL全局解释器锁问题,某一时刻只有一个线程占用cup执行,因此多cup、多核对于提高python应用效率并没有用
  • python适用于IO密集型应用,cup占用率低,不适用于计算密集型应用
  • 为什么要加GIL:个人理解,由于python的运行和资源分配需要靠python解释器,因此程序无法享有操作系统提供的线程保护机制,操作系统的线程保护机制只适用于python解释器。类似于操作系统课程中用户级线程和内核级线程的区别。

转载于:https://my.oschina.net/u/1159199/blog/1503618

你可能感兴趣的文章
利用FIFO进行文件拷贝一例
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
resmgr:cpu quantum等待事件
查看>>
一个屌丝程序猿的人生(六十六)
查看>>
Java 编码 UTF-8
查看>>
SpringMVC实战(注解)
查看>>
关于静态属性和静态函数
查看>>
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端
查看>>
spring+jotm+ibatis+mysql实现JTA分布式事务
查看>>
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>
[转]React 教程
查看>>
拓扑排序介绍
查看>>
eclipse打开工作空间(workspace)没有任务反应
查看>>
使用Sybmol模块来构建神经网络
查看>>
字符串去分割符号
查看>>
WPF中,多key值绑定问题,一个key绑定一个界面上的对象
查看>>