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

相关推荐

  • python学习第七周个人总结

    LEGB、递归函数、匿名函数、生成器函数、生成器应用、高阶函数、柯里化、装饰器、类型注解、functools.个人总结,加深印象。

    2018-04-22
  • 二叉树的遍历和堆排序

    二叉树的遍历和堆排序

    Python笔记 2018-05-16
  • Python第二周小结

    不知不觉已经正式学习接触Python两周了,第二周主要开始了Python内置数据结构的学习,包括从一开始的列表list,元组tuple,字符串string,再到后来的bytes, bytearray, 以及最后的集合set。这些数据结构可以说Python最为基础的几种类型,想要用Python写出漂亮的代码离不开对他们的熟练掌握与深刻理解。这几个结构各有各的特…

    Python笔记 2018-03-31
  • DevOps 风向标!DevOps国际峰会6月29日正式启航!

    DOIS 大会为您呈现互联网公司与海外企业的实践经验与工具技术,聚焦 DevOps 在金融、电信、零售等行业的系统性实践。在这里我们不空谈、不务虚,实实在在的专注DevOps落地。

    2018-05-16
  • 函数执行过程和递归函数练习题

    函数执行过程和递归函数练习题

    2018-04-16
  • Python高阶函数及装饰器

    First Class Object 函数在Python中是一等公民 函数也是对象,可调用的对象 函数可作为普通变量、参数、返回值等 高阶函数 数学定义:y=g(f(x)) 高阶函数需满足的条件,至少其一 接受一个或多个函数作为参数 输出一个函数 内建函数的高阶函数 排序:sorted(iterable[,key][,reverse]) 返回一个新列表,对一…

    2018-04-22