zoukankan      html  css  js  c++  java
  • lambda

    什么是lambda函数,中文名叫匿名函数?

    在你需要的时候采才去定义它,函数形式如下:

    lambda 参数列表 : 表达式

    lambda x,y:x*y

    lambda x: x*2

    但是这个不行 lambda x: x=x+2 不行,因为不是表达式

    函数式编程的思想,把所有的函数就当做对象一样看待,而lambda函数也一样,

    g = lambda x: x*2

    此时g就相当于函数

    def g(x):

      return x*2

    那么lambda函数在那可以使用呢?如下一些小函数不需要重用,如果只用一次,而且这个函数可以用一个表达式来表示,那么就可以用lambda函数,当然你也可以不这么干。

    分割与合并字符串:join 和 split

    如下:

    li = ['1','2','3']

    s = "+".join(li)

    ///s= '1+2+3'

    你会发现split和join不仅仅是逻辑上看起来不同,而且连参数的调用方式也是相反的

    s = '1+2+3'

    t = s.split('+')

    ///t = ['1','2','3']

    and-or 技巧

    c中 bool? a:b 含义是当bool为真时,则计算为a的值,否则计算b的值,python怎么做呢?

    a = "first"

    b = "second"

    s = 1 and a or b

    ///s = 'first'

    s = 0 and a or b

    ///s = 'second'

    尽管如此,但是python语法中对于bool? a:b并不是总是和你想象的一样,如下:

    a = " "

    b = "second"

    s = 1 and a or b

    ///s = "second"

    这个是python中的一个诡计,所以当a为假时,记住不是你想要的值,a = " " 或者 a = 0,都会认为a是假的,但是如果把a放入列表中,则不然,所以可以这么干,如下:

    a = ""

    b = "second"

    s = (1 and [a] or [b])[0]

    ///s = " "

    当然负责人的程序员会把这个封装至函数内,如下:

    def choose(bool, a, b):

      return (1 and [a] or [b])[0]

    python常用的函数:

    首先类型转换:

     1     函数                      描述  
     2     int(x [,base ])         将x转换为一个整数  
     3     long(x [,base ])        将x转换为一个长整数  
     4     float(x )               将x转换到一个浮点数  
     5     complex(real [,imag ])  创建一个复数  
     6     str(x )                 将对象 x 转换为字符串  
     7     repr(x )                将对象 x 转换为表达式字符串  
     8     eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象  
     9     tuple(s )               将序列 s 转换为一个元组  
    10     list(s )                将序列 s 转换为一个列表  
    11     chr(x )                 将一个整数转换为一个字符  
    12     unichr(x )              将一个整数转换为Unicode字符  
    13     ord(x )                 将一个字符转换为它的整数值  
    14     hex(x )                 将一个整数转换为一个十六进制字符串  
    15     oct(x )                 将一个整数转换为一个八进制字符串  

    序列中常用的函数:

     1     操作                      描述  
     2     s + r                   序列连接  
     3     s * n , n * s           s的 n 次拷贝,n为整数  
     4     s % d                   字符串格式化(仅字符串)  
     5     s[i]                    索引  
     6     s[i :j ]                切片  
     7     x in s , x not in s     从属关系  
     8     for x in s :            迭代  
     9     len(s)                  长度  
    10     min(s)                  最小元素  
    11     max(s)                  最大元素  
    12     s[i ] = x               为s[i]重新赋值  
    13     s[i :j ] = r            将列表片段重新赋值  
    14     del s[i ]               删除列表中一个元素  
    15     del s[i :j ]            删除列表中一个片段  

    数值操作:

     1     x << y                  左移  
     2     x >> y                  右移  
     3     x & y                   按位与  
     4     x | y                   按位或  
     5     x ^ y                   按位异或 (exclusive or)  
     6     ~x                      按位翻转  
     7     x + y                   加  
     8     x - y                   减  
     9     x * y                   乘  
    10     x / y                   常规除  
    11     x // y                  地板除  
    12     x ** y                  乘方 (xy )  
    13     x % y                   取模 (x mod y )  
    14     -x                      改变操作数的符号位  
    15     +x                      什么也不做  
    16     ~x                      ~x=-(x+1)  
    17     abs(x )                 绝对值  
    18     divmod(x ,y )           返回 (int(x / y ), x % y )  
    19     pow(x ,y [,modulo ])    返回 (x ** y ) x % modulo  
    20     round(x ,[n])           四舍五入,n为小数点位数  
    21     x < y                   小于  
    22     x > y                   大于  
    23     x == y                  等于  
    24     x != y                  不等于(与<>相同)  
    25     x >= y                  大于等于  
    26     x <= y                  小于等于  

    python中list和tuple如何相互转换:

    l1 = [1,2,3,4]

    l2 = tuple(l1)

    ///l2 = (1,2,3,4)

    l1 = (1,2,3,4)

    l2 = list(l1)

    ///l2 = [1,2,3,4]

    list如何去重,如下:

    l1 = [1,2,3,4,1]

    l2 = list(set(l1))

    ///l2 = [1,2,3,4]

    tuple也一样

  • 相关阅读:
    sqlmap的学习以及使用
    SQL查询关于相对路径、矢代、绝对路径、递归、计算列的速度对比跟优化-SOD群记录
    新版本打印控件插件
    vs2013 遇到的web性能记录器无法使用问题
    sql数据库 管理处理问题--维护计划
    nopcommerce 初学2
    控制饭庄
    递归问题==优化 还有数据库sqlreader
    Java基础 -3.2
    Java基础 -3
  • 原文地址:https://www.cnblogs.com/GODYCA/p/2858918.html
Copyright © 2011-2022 走看看