python_函数

一.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

  

 

posted @ 2016-12-02 16:12  LaniLai  阅读(434)  评论(0编辑  收藏  举报