一.map
遍历序列,对序列中每个元素进行操作,最终获取新的序列
1 li = [11,22,33,44] 2 new_list = map(lambda a: a + 100,li) 3 print(new_list) 4 print(list(new_list)) 5 6 #输出结果 7 <map object at 0x00000000011742B0> 8 [111, 122, 133, 144] 9 10 #第一个print打印得结果是new_list的内存地址,我们需要将new_list 11 转换为list类型,才能看到结果
二.filter
对于序列中的元素进行筛选,最终获取到符合条件的序列
li = [11,22,33,44] new_list = filter(lambda a: a >22,li) print(list(new_list)) #[33, 44]
三:reduce
对于序列内所有元素进行累计操作
1 from functools import reduce 2 li = [11,22,33,44] 3 result = reduce(lambda arg1, arg2: arg1 + arg2,li) 4 res = reduce(lambda arg1, arg2: arg1 + arg2,li, 100) 5 print(result) # 110 6 print(res) # 210 #参数末尾的100为默认参数,可指定,也可不指定,如果不指定就按照li列表中的元素,依次相加,如果指定默认参数为100,就按照100开始相加 7 8 #reduce的第一个参数,函数必须要有两个参数 9 #reduce的第二个参数,要循环的序列 10 #reduce的第三个参数,初始值
总结
1 #map,filter,reduce,可以处理所有的数据类型 2 name_dic = [ 3 {'name':'ying','age':28}, 4 {'name':'jack','age':50}, 5 {'name':'rain','age':10}, 6 {'name':'alex','age':70}, 7 {'name':'zcy','age':40}, 8 ] 9 #利用filter过滤掉,年龄为50,70,40的 10 11 def func(x): 12 age_list = [70,50,40] 13 return x['age'] not in age_list 14 15 res = filter(func,name_dic) 16 for i in res: 17 print(i) 18 #{'age': 28, 'name': 'ying'} 19 #{'age': 10, 'name': 'rain'} 20 21 22 result = filter(lambda x:x['age'] < 40,name_dic) 23 print(list(result)) 24 #[{'age': 28, 'name': 'ying'}, {'age': 10, 'name': 'rain'}] 25 26 #reduce用来计算1到100的和 27 from functools import reduce 28 print(reduce(lambda x,y:x+y,range(100),100)) #5050 29 print(reduce(lambda x,y:x+y,range(1,101))) # 5050 30 31 #用map来处理字符串列表,把列表中所有人都变成sb,如alex_sb 32 name = ['alex','jack','rain'] 33 res = map(lambda x:x+'_sb',name) 34 print(list(res)) 35 #['alex_sb', 'jack_sb', 'rain_sb']
四:内置函数
1 #abs() 绝对值 ,正数的绝对值为它本身,负数的绝对值为它的正数,0的绝对值为0 2 print(abs(9)) # 9 3 print(abs(-8)) # 8 4 print(abs(0)) # 0 5 6 #all()判断所有的集合元素都为真是即为真,有一个元素为即为假 7 list_test = [11,22,33,44,5] 8 print(all(list_test)) # True 9 list_test_two = ['',11,22,None,33,44,5] 10 print(all(list_test_two)) # False 11 12 #any()判断所有集合中的元素有一个为真就为真,若为空放回False 13 list_test = ['',11,22,None,33,44,5] 14 print(any(list_test)) # True 15 list_test_two = [] 16 print(any(list_test_two)) # False 17 18 #bool()判断真假 19 #在python中,0,None,空(字典,列表,元组,字符串,集合)为假,其他都为真 20 21 #ord()返回字符串对应的ASCII字符编码 22 print(ord('y')) # 121 23 24 #bin()将十进制转换为二进制 25 print(bin(10)) # 0b1010 26 27 #oct()将十进制转换为八进制 28 print(oct(9)) # 0o11 29 30 #hex()将十进制转换为十六进制 31 print(hex(10)) # 0xa 32 33 #min() 取一个集合中最小的值 34 list_test = [11,22,33,44,5] 35 print(min(list_test)) # 5 36 37 #max()取一个集合中最大的值 38 print(max(list_test)) # 44 39 40 #dir()不带参数时,返回当前范围内的内置函数,带参数时,返回该参数的属性和内置方法 41 42 43 #int()把一个对象转换成整数也就是10进制 44 int("111",base=2) #2进制转10进制 7 45 int("567",base=8) #8进制转10进制 375 46 int("aa",base=16) #16进制转10进制 170 47 int(10.123) #转换成整数 10 48 49 #divmod()获取商和余数 50 print(divmod(10,3)) # (3, 1) 商3余1 51 52 #eval(),返回对象本身 53 print(eval('10'+'10')) # 1010 54 print(eval('10 + 10')) # 20 55 56 #id()返回一个对象的内存地址 57 list_test = [11,22,33,44,5] 58 print(id(list_test)) # 10834184 59 60 #len()返回一个对象的长度 61 list_test = [11,22,33,44,5] 62 print(len(list_test)) # 5 63 64 #frozenset()冻结集合,让其不运行修改 65 list_test = [11,22,33,44,5] 66 print(frozenset(list_test)) # frozenset({33, 11, 44, 5, 22}) 67 68 69 #range()产生一个序列 70 print(range(1,10)) # range(1, 10) 71 72 # reversed() 反转 73 list_test = [11,22,33,44,5] 74 print(list(reversed(list_test))) # [5, 44, 33, 22, 11] 75 76 #round()四舍五入 77 print(round(3.5)) # 4 78 print(round(3.2)) # 3 79 80 #sorted()集合排序 81 list_test = [11,22,33,44,5] 82 print(sorted(list_test)) # [5, 11, 22, 33, 44] 83 84 #sum()求和 85 list_test = [11,22,33,44,5] 86 print(sum(list_test)) # 115 87 print(sum(range(1,100))) # 4950 88 89 #type()返回该对象的类型 90 list_test = [11,22,33,44,5] 91 print(type(list_test)) # <class 'list'> 92 93 #zip()压缩,zip函数接收任意多个序列做为参数,返回一个元组,列表 94 l1 = ["alex",22,33,44,55] 95 l2 = ["is",22,33,44,55] 96 l3 = ["good",22,33,44,55] 97 l4 = ["guy",22,33,44,55] 98 result = zip(l1,l2,l3,l4) 99 print(list(result)) 100 print(type(result)) 101 102 #[('alex', 'is', 'good', 'guy'), (22, 22, 22, 22), (33, 33, 33, 33), (44, 44, 44, 44), (55, 55, 55, 55)] 103 #<class 'zip'>
五:三元运算
result = 值1 if 条件 else 值2 #如果条件为真:result = 值1 #如果条件为假: result = 值2