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也一样

原文地址:https://www.cnblogs.com/GODYCA/p/2858918.html