为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Python内置的 sorted()函数可对list进行排序:

    >>>sorted([36, 5, 12, 9, 21])
    [5, 9, 12, 21, 36]

    但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。


    查看全部
  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

    查看全部
  • reduce(f, [1, 3, 5, 7, 9], 100)

    结果将变为125,因为第一轮计算是:

    计算初始值和第一个元素:f(100, 1),结果为101


    查看全部
  • reduce()还可以接收第3个可选参数,作为计算的初始值

    查看全部
  • reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

    查看全部
  • cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

    lower()函数把字符都变成小写,然后进行判断。

    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

    查看全部
  • >>> myabs = lambda x: -x if x < 0 else x 
    >>> myabs(-1)
    1
    >>> myabs(1)
    1


    查看全部
  • myabs = lambda x: -x if x < 0 else x


    查看全部
  • Python中的发放也是属性

    1:方法是在类的内部定义的,只能通过实例化之后使用;而函数是在程序内定义的,可以不必实例化,直接用。举个例子,如果有个方法和函数都叫func,方法的调用方法必须是a.func()(其中,a为类的实例);函数的调用方法为func()。方法的第一个参数必须是self,但是在调用时这个参数不必传入(python自动传入);函数参数没有此类限制

    2:实例名.方法名  得到的是一个函数对象,并且这个函数对象是绑定在这个实例上的。

    3:由于方法也是类的一个属性,所以发放可以动态的绑定在一个实例上。用types.MethodType(),详见例子。


    查看全部
  • python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。

    sort函数和sorted函数唯一的不同是,sort是在容器内排序,sorted生成一个新的排好序的容器。 对于一个简单的数组 L=[5,2,3,1,4].sort: L.sort()

    sorted(...)

        sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

    iterable:待排序的可迭代类型的容器;
    cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
    key:用列表元素的某个已命名的属性或函数(只有一个参数并且返回一个用于排序的值)作为关键字,有默认值,迭代集合中的一项;
    reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
    返回值:是一个经过排序的可迭代类型,与iterable一样。

    如果是一个多维的列表 L=[(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)].

    有三种选择对这个多维列表进行排序

    • 利用cmp函数

    sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))

    L.sort(cmp=lambda x,y:cmp(x[1],y[1]))

    • 利用key

    sorted(L, key=lambda x:x[1]);

    L.sort(key=lambda x:x[1]);

    • 反序

    以上几种排序均可加上参数reverse.

    例如 sorted(reverse=True), L.sort(reverse=True). 或者改成False


    查看全部
  • Python中,类通过 class 关键字定义。定义一个Person类如下:

    class Person(object):
        pass

    按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。

    创建实例使用 类名+(),类似函数调用的形式创建:

    xiaoming = Person()
    xiaohong = Person()
    打印实例并判断实例是否相等
    print xiaoming
    pring xiaohong
    pring xiaoming==xiaohong
    查看全部
  • 提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写

    查看全部
  • 1. 地板除法:用//表示,不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。比如 1//2 = 0, 1.0//2= 0。 2. 传统除法:用/表示,对整数之间的/,执行地板除,但对有浮点数参与的除法则执行传统意义上的除法。比如 1/2 = 0, 1.0/2=0.5。 3. 精确除法:如果你想让上面的传统除法,更"传统",你就应该调用 from __future__ import division,这样以后/就真的变成传统意义上的传统除法了。比如,1/2=0.5, 1.0/2=0.5。 4. 注意以上讲的是针对Python 2.6+版本的,对于Python 3+,传统除法被废除了,也就是说只有地板除和精确除法,分别用//和/表示,且不用调用 from __future__ import division。 5. 结果为float,在除数或者被除数中必须有一float

    查看全部
  • 完善装饰器章节 练习
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!