一、内置函数里几个高频重要函数
(1)minmax函数的用法
以min函数的为例:
min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。
l1 =[(1,1000),(2,18),(3,500)] def func1(x): return x[1] print(min(l1,key=func1))
结果为:(2,18)
解释:
(1)他会将iterable里面的每个元素自动取出来。
(2)他会将你的返回值作为比较大小的具体条件。
(3)它会将遍历的元素返回回来
(2)repr:返回一个对象的string形式(原形毕露)
print('alex') # alex print(repr('alex')) # 'alex' print(repr("{'alex':'sb'}")) # "{'alex':'sb'}" print(('alex是%r的人'%('德高望重'))) # alex是'德高望重'的人
注意:repr() json pickle 序列化模块与特殊字符串的区别
(3)sorted 对可迭代对象排序
1.1列表
l1 = [1,5,4,6,3] l1.sort() # 原列表发生改变 # print(sorted(l1)) # 原列表不变 print(l1)
1.2元素为元组的列表:以该元组第一个元素排序
l2 = [(1,100),(2,18),(4,250),(3,50)] print(sorted(l2)) # [(1, 100), (2, 18), (3, 50), (4, 250)]
1.3 元素为元组的列表:以该元组第二个元素排序
def func(x): return x[1] print(sorted(l2,key=func,reverse= False)) # [(2, 18), (3, 50), (1, 100), (4, 250)]
1.4字典 :利用内置函数匿名函数将dic按照值进行排序。
dic={'k1':10,'k2':100,'k3':30} print(sorted(dic.items(),key=lambda x:x[1])) # x为元组 print(sorted(dic,key=lambda x:dic[x])) # x为键
结果为:
[('k1', 10), ('k3', 30), ('k2', 100)]
['k1', 'k3', 'k2']
(3)zip 拉链方法
l1 = [1,2,3] tuple1 = ('alex','太白','wusir','女神') dic1 = {'name':'日天','age':28,'hobby':'tea'} print(zip(l1,tuple1,dic1)) # <zip object at 0x000002EC0EBD0A48> for i in zip(l1,tuple1,dic1): print(i) 结果为: (1, 'alex', 'name') (2, '太白', 'age') (3, 'wusir', 'hobby')
注意:如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
(4)filter 过滤 迭代器
l1 = [i for i in range(10)] def func1(x): return x % 2 == 0 print(list(filter(func1,l1))) # [0, 2, 4, 6, 8]
再举例子 :利用内置函数匿名函数,将值大于10的留下来。
l2 =[5,8,11,9,15] print(list(filter(lambda x:x > 10,[5,8,11,9,15]))) # 过滤 留下符合条件的值
(5)map:会根据提供的函数对指定序列做映射。循环模式
l2 = [1,5,7,4,8]
利用内置函数匿名函数 计算列表的每个数的2倍。
print(list(map(lambda x:x **2,[1,5,7,4,8] ))) # 映射 得出结果 print(map(lambda x:x *2,[1,5,7,4,8] )) # 迭代器 结果为: [1, 25, 49, 16, 64] <map object at 0x0000021A000D3DD8>
(6)sum 求和,可以设初始值
sum(iterable(可迭代对象),start-num(初始值))
print(sum([1,2,3,4,5,6],100)) 结果为: 121
(7)print() 的用法
def func1(*args,**kwargs): print(*args) # 打散 1 2 3 4 print(args) # 元组 (1, 2, 3, 4) print(kwargs) # 字典,不能打散 {'name': 'alex', 'age': '100'} func1(1,2,3,4,name = 'alex',age = '100') print(1,2,3,sep='|') # 1|2|3 print(1,end=' ') print(222) # 1 222
(8)reversed:将一个序列翻转,并返回此翻转序列的迭代器
l1 = [1,3,4,5,8] s1 = 'abcdef' print(reversed(l1)) # 迭代器 for i in reversed(l1): print(i) for i in reversed(s1): print(i)
二、匿名函数
条件:普通函数 有且只有返回值的函数才可以用匿名函数进行简化,一行函数。
匿名函数 lambda表达式
func2 = lambda x:x*2 print(func2(6)) 结果为: 12