python中常见的内置函数

  • map
 1 #自定义map函数
 2 def map_test(func, list):
 3     res = []
 4     for item in list:
 5         res.append(func(item))
 6     return res
 7 
 8 def add_one(x):
 9     return x + 1
10 
11 a = [1, 2, 3]
12 print(map_test(add_one, a))
13 print(map_test(lambda x:x + 1, a))  #终极版本
14 
15 #python中的内置函数map(),功能同上
16 print('python的内置函数map()', list(map(lambda x:x + 1, a)))
17 #map(参数1:功能函数(命名函数或者是匿名函数,参数2:可迭代对象(列表,字符串...)))
18 #python2中map()函数处理的结果是一个列表,而python3中处理的结果是一个可迭代对象
map

 

  • filter
 1 #自定义filter函数
 2 def filter_test(func, list):
 3     res = []
 4     for item in list:
 5         if func(item):
 6             res.append(item)
 7     return res
 8 
 9 def bigger5(x):
10     if x > 5:
11         res = True
12     else:
13         res = False
14     return res
15 
16 a = [1, 2, 3, 10, 15, 6]
17 print(filter_test(bigger5, a))
18 
19 #python内置函数filt(),功能同上
20 print(list(filter(bigger5, a)))
21 #filter(参数1:功能函数(命名函数或者是匿名函数,参数2:可迭代对象(列表,字符串...)))
22 #python2中filter()函数处理的结果是一个列表,而python3中处理的结果是一个可迭代对象
filter

 

  • reduce
 1 #自定义reduce函数
 2 def reduce_test(func, list, init = None):
 3     if init is None:
 4         res = list.pop(0)
 5     else:
 6         res = init
 7     for item in list:
 8         res = func(res, item)
 9     return res
10 a = [1, 2, 3]
11 print(reduce_test(lambda x, y:x + y, a))
12 
13 #python内置函数reduce()
14 from functools import reduce
15 a = [1, 2, 3]
16 print(reduce(lambda x, y:x + y , a))  #6
17 print(reduce(lambda x, y:x + y , a, 2))  #8
18 #reduce(参数1:功能函数(命名函数或者是匿名函数),参数2:可迭代对象(列表,字符串...),参数3,初始值(可选参数))
19 #返回是一个值
reduce
①map():对可迭代对象中的每个元素都进行相同的处理,最后返回一个新的可迭代对象,python2中直接返回列表形式
②filter():对可迭代对象中的每个元素进行筛选,最后将符合条件的元素装进一个新的可迭代对象里,python2中直接返回列表形式
③reduce():对可迭代对象中的元素进行一个操作(如所有的值加起来),最后返回新数值
  • 其他内置函数
  1 # ==========abs==========绝对值
  2 print(abs(-1))  # 1
  3 
  4 # ==========all==========可迭代对象的每个元素的布尔操作都是True时返回True,若传入的可迭代对象是空则返回True
  5 print(all(['', 1, 's']))  # False
  6 
  7 # ==========any==========可迭代对象的每个元素的布尔操作中有一个是True时就返回True,若传入的可迭代对象是空则返回True
  8 print(any(['', 5, '0']))  # Ture
  9 
 10 # ==========bin==========将十进制数转成二进制数
 11 print(bin(3))  # 0b11
 12 
 13 # ==========hex==========将十进制数转成十六进制数
 14 print(hex(10))  # 0xa
 15 
 16 # ==========oct==========将十进制数转成八进制数
 17 print(oct(8))  # 0o10
 18 
 19 # ==========bool==========布尔值操作: 空 0 None 布尔操作为False
 20 print(bool([]))  # False
 21 
 22 # ==========bytes==========编码 将传入的字符串用某种编码方式转换成二进制
 23 print(bytes('', encoding='utf-8'))  # b'\xe9\x99\x88'
 24 print(bytes('', encoding='utf-8').decode('utf-8'))  # 陈  # 译码 译码与编码应采用一样的
 25 
 26 # ==========chr==========将ASCII码转成对应字符
 27 print(chr(97))  # a
 28 
 29 # ==========ord=========将字符转成对应的ASCII码值
 30 print(ord('a'))  # 97
 31 
 32 # ==========dir==========打印某种对象里面的所有属性
 33 print(dir(all))
 34 
 35 # ==========divmod==========参数1除以参数2 返回一个元组(商,余数)
 36 print(divmod(10, 3))  # (3, 1)
 37 
 38 # ==========eval==========
 39 dic = {'name': 'chen'}
 40 dic_str = str(dic)
 41 # ===================================功能1:提取成传入的字符串中的数据类型
 42 print(dic_str)  # '{'name': 'chen'}'
 43 print(type(dic_str))  # <class 'str'>
 44 print(eval(dic_str))  # {'name': 'chen'}
 45 print(type(eval(dic_str)))  # <class 'dict'>
 46 # ===================================功能2:计算字符串中的数学运算
 47 s = '1 + 2 * 1'
 48 print(eval(s))  # 3
 49 
 50 # ==========hash==========hash运算
 51 print(hash('chen'))  # -1076846465005340399
 52 print(hash('chenyuanyuan'))  # -8978753568388561982  #hash()---->hash运算
 53 
 54 # ==========help==========函数功能解释
 55 print(help(all))
 56 
 57 # ==========isinstance==========判断某个对象是否是某种数据类型的实例对象
 58 print(isinstance('2', str))  # True
 59 
 60 # ==========globals、locals==========全局变量、局部变量
 61 name = 'chen'
 62 
 63 
 64 def test():
 65     age = 18
 66     print(globals())  # 打印所有的全局变量,包括name
 67     print(locals())  # {'age': 18} #打印所有的局部变量
 68 
 69 
 70 test()
 71 
 72 # ==========min、max==========最小值、最大值
 73 dic = {'chen': 100, 'wang': 200, 'li': 500, 'do': 600}
 74 # ============一个可迭代参数
 75 print(min(['a01', 'b10', 'c1']))  # a01 遍历出每个元素,比较它们的的第一位的ASCII码值,找到最小后就停止比较
 76 # print(min(['a01', 'b10', 'c1', 30])) #报错 不同数据类型无法比较
 77 print(min(dic))  # chen
 78 print(max(dic))  # wang
 79 print(min(dic.values()))  # 100
 80 print(max(dic.values()))  # 600
 81 print(max(zip(dic.values(), dic.keys())))  # (600, 'do') #max与zip结合找出value值最大的那一组
 82 # ============两个参数
 83 print(min(dic, key=lambda k: dic[k]))  # chen
 84 print(max(dic, key=lambda k: dic[k]))  # do
 85 
 86 # ==========zip==========拉链操作,将多个可迭代对象(列表,元组,字符串)对应元素组成一个元组,多余元素自动去掉,返回可迭代对象
 87 print(list(zip('abc', 'def', 'ghihhhhh')))  # [('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')]
 88 print(list(zip(dic.keys(), dic.values())))  # [('chen', 100), ('wang', 200), ('li', 500), ('do', 600)]
 89 
 90 # ==========pow==========参数1的参数2次方,结果对参数3进行取余操作
 91 print(pow(2, 3))  # 8
 92 print(pow(2, 3, 1))  # 0
 93 
 94 # ==========reversed==========反转可迭代对象中元素的排列顺序,返回迭代器
 95 a = [1, 2, 3]
 96 print(list(reversed(a)))  # [3, 2, 1]
 97 
 98 # ==========round==========四舍五入取整
 99 print(round(2.66))  # 3
100 
101 # ==========set==========将其他数据类型转换成集合
102 print(set('hello'))  # {'h', 'o', 'e', 'l'}
103 
104 # ==========slice==========切片:参数1-->起始索引,参数2-->结束索引,参数3-->步长
105 a = 'ehllovihgh'
106 s1 = slice(2, 6, 2)
107 print(s1.start)  # 2
108 print(s1.stop)  # 6
109 print(s1.step)  # 2
110 print(a[s1])  # lo
111 
112 # ==========sorted==========排序
113 a = [1, 25, 2, 3]
114 print(sorted(a)) #[1, 2, 3, 25]  #不同数据类型任然无法进行排序比较
115 lists = [{'name': 'chen', 'age': 18}, {'name': 'wang', 'age': 25}, {'name': 'li', 'age': 9}]
116 print(sorted(lists, key = lambda dic:dic['age']))
117 #[{'name': 'li', 'age': 9}, {'name': 'chen', 'age': 18}, {'name': 'wang', 'age': 25}]
118 info = {'liu': 100, 'li': 12200, 'chen': 100000}
119 print(sorted(info.keys()))  #['chen', 'li', 'liu']  #比较key值
120 print(sorted(info.values())) #[100, 12200, 100000]  #比较value值
121 print(sorted(info, key = lambda key: info[key]))   #['liu', 'li', 'chen'] #比较value值,返回key值
122 print(sorted(zip(info.values(), info.keys())))   #[(100, 'liu'), (12200, 'li'), (100000, 'chen')]
123 
124 # ==========type==========查看数据类型
125 print(type('ll'))  # <class 'str'>
126 
127 # ==========sum==========求和
128 print(sum([5, 2, 3])) #10
129 
130 # ==========range==========范围
131 for item in range(5):
132     print(item)
133 # 0
134 # 1
135 # 2
136 # 3
137 # 4
138 for item in range(5, 7):
139     print(item)
140 # 5
141 # 6
142 
143 # ==========__import__==========引入字符串类型的模块名
144 m = __import__('...')
145 m.函数名()
其他内置函数

 

 

posted @ 2019-01-25 12:46  Sakura媛媛  阅读(533)  评论(0编辑  收藏  举报