Python 部分知识点总结(一)

此篇博客只是记录第三周未掌握或不熟悉的知识点,用来加深印象。

一、计算代码运行时间

  1. import datetime
    start = datetime.datetime.now()
    stop = datetime.datetime.now()
    delta = (stop – start).total_seconds()

二、内存管理

  1. 编程中一般无须关心变量的存亡,也不用关心内存的管理
  2. Python使用引用计数记录所有对象的引用数
    当对象引用数变为0,它就可以被垃圾回收GC
    计数增加:赋值给其它变量就增加引用计数,例如 x=3;y=x
    计数减少:函数运行结束时,局部变量就会就会被自动销毁,对象引用计数减少                    变量被赋值给其它对象,例如 x=3;y=x;x=4

三、数字处理函数

  1. // :类似于 floor( ),整除且向下取整
    >>> 7//2  –> 3
    >>> 7//-2 –> -4
    >>> -7//2  –> -4
  2. 开方
    pow(x,y) = x**y  比如可以开三次方
    math.sqrt( )   开平方

四、list

  1. list:是可变的,任何位置都可以增加或删除数据
    queue:要么从前面,要么从后面增加或删除数据
    链表:手拉手模型,而且在内存中存放的位置是散落的,但是串在一起的,适用于频繁的插入或者取走数据
    stack:只能后进先出,摞盘子模型,适用于函数
  2. index(value,[start,[stop]])
    通过值value,从指定区间查找列表内的元素是否匹配
    匹配第一个就立即返回索引
    匹配不到,抛出异常ValueError
    时间复杂度是 O(n)
    lst.index(5)      –>   3
  3. count(value)
    返回列表中匹配value的次数
    随着列表数据规模的增大,效率会逐渐下降
    时间复杂度是 O(n)
    lst.count(1)    –>   0
  4. append(object)  –> None
    返回None就意味着没有新的列表产生,就地修改
    追加的时候,列表只占一个索引位
    时间复杂度是O(1)
  5. extend(iteratable)  –> None
    将可迭代对象的元素追加进来,就地修改
    追加的时候,是将列表中的每个元素都追加进来
  6. +  –> list
    实际上是生成了一个新的列表,存这两个列表的和,只能用在两个列表相加
    原列表不变
    本质上调用的是 __add__() 方法
  7. +=
    效果与 extend() 一样
  8. *  –>list
    重复操作,将本列表元素重复 n 次,返回新列表
  9. insert(index,object)  –> None
    在指定的索引 index 处插入元素 object
    返回None就意味着没有新的列表产生,就地修改
    如果索引 index 超越上界,尾部追加
    如果索引 index 超越下界,头部追加
    时间复杂度是O(n)
  10. remove(value)  –> None
    从左至右查找第一个匹配 value 的值,移除该元素,返回 None
    就地修改
    时间复杂度是O(n)
  11. pop([index])  –> item
    不指定索引 index,就从列表尾部弹出一个元素,时间复杂度是O(1)
    指定索引 index,就从索引处弹出一个元素,索引超界抛出 IndexError 错误,时间复杂度是O(1),但是效率不行
  12. clear()   –> None
    清除列表所有元素,剩下一个空列表
  13. reverse() –> None
    将列表元素反转,返回 None,就地修改
    注意和系统中的内置函数 reversed 不一样,直接用 reversed(lst) 返回的是一个内存中存放的值
  14. sort(key=None,reverse=False)  –> None
    将列表元素进行排序,就地修改,默认升序
    reverse 为 True,反转降序
    key 一个函数,指定 key 如何排序  lst.sort(key=functionname)
    和内建函数 sorted 有相似之处

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93090

(0)
上一篇 2018-03-26 20:25
下一篇 2018-03-26 20:26

相关推荐

  • 封装与解构 集合

    封装和解构 封装:将多个值进行分割,结合在一起,本质上返回元组,只是省掉了小括号 ‘==‘意思为内容一致,‘=’意思为内存空间一致 解构:把线性结构的元素解开,并顺序的赋值给其他变量,左边接纳的变量数要和左边解开的元素数量一致 集合不是非线性 解构中使用*变量名接收,但不能单独使用,被*变量名收集后组成一个列表 第一个下划线为9,结果被第二个下划线重新赋值为…

    Python笔记 2018-04-01
  • Python 部分知识点总结(三)

    此篇博客只是记录第五周未掌握或不熟悉的知识点,用来加深印象。

    2018-04-08
  • StringIO

    StringIOio模块中的类From io import StringIO内存中,开辟的一个文本模式的buffer,可以像文件对象一样操作它当close方法被调用的时候,这个buffer会被释放StringIO操作getvalue() 获取全部内容。跟文件指针没有关系from io import StringIO# 内存中构建sio = StringIO(…

    Python笔记 2018-05-07
  • Python内置数据结构——列表

    知识框架图 学习笔记 数据结构分类 数值 int、float、complex、bool都是class int:长整型,没有上限,取决于内存区域大小 float:支持十进制和科学计数法,仅支持双精度 complex:复数,有实数和虚数部分 bool:int的子类,True、False对应1、0,可以和整数直接运算 序列对象 字符串str 列表list 元组tu…

    2018-03-26
  • Python 部分知识点总结(二)

    此篇博客只是记录第四周未掌握或不熟悉的知识点,用来加深印象。

    Python笔记 2018-03-30
  • 文件IO常用操作

    io模块 StringIO BytesIO 类
    pathlib模块 路径操作 3.4版本开始
    os模块 更改权限、显示信息 3.4版本之前路径操作
    shuril 模块(高级文件操作
    csv 文件
    configparser模块 ini文件处理

    2018-05-02