python函数七(内置函数)
一。内置函数
1.重要内置函数
都是带key的: max min map filter 返回的是迭代器
sorted 返回的是列表 函数名在后
1.1 max
dic = {'k1':20,'k2':30,'k3':100} def func(x): return dic[x] l1 = max(dic,key=func,) #(输出的是dic默认就是输出dic的键),函数返回的是是value值,即选出最大的value对应的键 print(l1) #k3 dic = {3:20,2:30,1:100} def func(x): return x l1 = max(dic,key=func,) #(输出的是dic默认就是输出dic的键),函数返回的是是key值,即选出最大的key print(l1) #3
1.2 zip 可以放置多个可迭代对象,以最少的可迭代对象的个数为基准,返回一个迭代器( 拉链方法)
l1 = [1,2,3,4,5] l2 = ['wusir','alex','taibai'] l3 = ['*',"**"] print(zip(l1,l2)) #<zip object at 0x00000161EDC19F08> for i in zip(l1,l2,l3): print(i) 结果: (1, 'wusir', '*') (2, 'alex', '**')
1.3 map
print([i*i for i in range(5)]) #[0, 1, 4, 9, 16] print(map(abs,[1,2,3,-4,-5,-7])) #<map object at 0x0000015B0DCC75C0> 迭代器 for i in map(abs,[1,2,3,-4,-5,-7]): #abs 是内置函数,绝对值 print(i) def func(x):return x*x for i in map(func,range(5)): #func是自己写的函数 print(i) def func(x):return x*x for i in map(func,[0,1,2,3,4]): print(i)
1.4 filter 过滤 筛选出符合条件的元素输出
print([i for i in [1,2,3,4,5] if i % 2 == 0]) #[2, 4] def func1(x):return x % 2 == 0 for i in filter(func1,[1,2,3,4,5]): print(i) # 结果: # 2 # 4
1.5 sorted 返回的是列表,形成一个新列表,并返回
list.sort() 改变原列表
l1 = [1,4,3,5,7,8] print(sorted(l1,)) #[1, 3, 4, 5, 7, 8] l = ['fsdafsa','fddsaf','qqq','fgasjdlg;dsjfg'] def func1(x): return len(x) print(sorted(l,key=len)) #['qqq', 'fddsaf', 'fsdafsa', 'fgasjdlg;dsjfg'] for i in sorted(l,key=func1): print(i)
2.其余内置函数简介
2.1 # any all
print(any(['',1,0])) #True any至少存在一个元素为真,返回True 类似 or print(all(['',1,0])) #False all全部元素为真,返回True 类似 and
2.2 ord 输入字符,返回unicode对应的编码位置
chr 输入编码位置,返回unicode对应的字符
# print(ord('a')) # print(ord('b')) # print(ord('中')) # 结果: # 97 # 98 # 20013 print(chr(97)) #a print(chr(20013)) #中 print(ascii('a')) #'a' print(ascii('国')) #\u56fd
2.3 %r repr 原形毕露
name = 'alex%r'%('sb') print(name) #alex'sb' print(repr('[1,2]')) #'[1,2]'
2.4 slice() 切片
l1 = [11,22,33,44] print(l1[1::2]) sl = slice(1,4,2) #命名一个规则,之后在切片 print(l1[sl])
2.5 reversed() 形成一个新的迭代器.
l1 = [11,33,22,44,'alex'] l1.reverse() print(l1) #['alex', 44, 22, 33, 11] 改变的是原列表,只能打印原列表 l2 = reversed(l1) #这是一个迭代器iterator for i in l2: print(i)
二。匿名函数
一般与内置函数配合使用
格式:lambda x:x
l1 = ['234','12','fsdafa','fdsagag'] def func1(x):return x % 2 == 0 for i in filter(func1,[1,2,3,4,5]): print(i) # 2 4 for i in filter(lambda x:len(x) >= 3,['234','12','fsdafa','fdsagag']): print(i) # 234 fsdafa fdsagag