• 廖雪峰Python总结2


    1.切片

    L[0:3]表示,从索引0开始,直到索引3为止,但是不包括索引3。如果第一个索引是0,还可以省略L[:3]

    倒数切片:L[-n:-1],-1是倒数第一个元素,L[-n:-1]不包括倒数第一个元素。L[-n:]表示取后n个数。

    L[:10:2]:前十个数,每两个取一个。

    元组和字符串都可以用切片操作。

    2.迭代

    因为dict的存储不是按照list的方式顺序排列的,所以迭代出的结果顺序很可能不一样。

    默认情况下,dict迭代的是key,如果要迭代value,可以用:

    for value in d.values():  #迭代value
    for k,v in d.items():     #同时迭代key和value

    判断一个对象是可迭代对象,通过collections模块的Iterable类型判断:

    from collections imoprt Iterable
    isinstance(
    'abc',Iterable) #str是否可迭代 isinstance([1,2,3],Iterable) #list是否可迭代 isinstance(123,Iterable) #interger是否可迭代

    要对list实现类似Java那样的下标循环:Python内置的enumerate函数可以吧list变成索引-元素对,这样可以在for循环中同时迭代索引和元素本身。

    for i,value in enumerate(['A',‘B’,'C']):
        print(i,value)

    3.列表生成式

    如:

    [ x*x for x in range(1,11)]
    #for循环后面加上if判断,筛选出符合要求的
    [ x*x for x in range(1,11) if x%2==0]
    #使用两层循环,生成全排列
    [m+n for m in 'ABC' for n in 'XYZ']

    4.生成器与迭代器(*****后面了解清楚*****)

    如果列表元素可以按照某种算法推断出来,那么我们可以在循环过程中不断推算出后续的元素,这样不必创建完整的list,从而节省大量的空间,Python中,边循环边计算的机制,称为:generator

    创建列表生成式的方法:

    • 把列表生成式的[]改成():使用for循环来调用

    5.函数式编程:抽象程度很高的编程范式,允许把函数本身作为参数传入另外函数,还允许返回一个函数!

    Python对函数式编程提供部分支持,由于Python允许使用变量,因此,Python不是纯函数式编程语言。

    abs(-10)是函数调用,而abs是函数本身。函数本身可以赋值给变量,即变量可以指向函数。

    函数名:其实就是指向函数的变量,对于abs()这个函数,完全可以吧函数名abs看成变量,它指向一个可以计算绝对值的函数。

    高阶函数:

    def add(x,y,f):
        return f(x)+f(y)

    sorted:

    对于两个元素x,y,如果认为x<y,则返回-1,如果x==y,则返回0,如果认为x>y,则返回1,这样排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。

    sorted也是一个高阶函数,它可以接收一个key来实现自定义的排序,如按照绝对值大小排序:

    key指定的函数将作用于list的每一个元素上,并且根据key函数返回的结果排序。

     6.返回函数

    函数作为返回值

     ******闭包*****(以后了解清楚)

    匿名函数:lambda 参数列表:函数

    7.装饰器(Decorator)******后面补充******

    8.偏函数 

  • 相关阅读:
    C# Bitmap类型与Byte[]类型相互转化
    博客园添加个人Github链接
    C# Exception has been thrown by the target of an invocation(调用的目标已抛出异常) 解决办法
    C# 使用Renci.SshNet连接SSH远程服务器
    Oracle 查询当前数据库版本信息
    Oracle ORA-12569: TNS:包校验和失败
    Oracle Rollup()函数
    Oracle 字符串补零
    DataGridView 表格排序后颜色丢失
    DataGridView 实现最后一列的宽度自适应
  • 原文地址:https://www.cnblogs.com/pythonlearing/p/9750449.html
Copyright © 2020-2023  润新知