python提供了68个内置函数
比较重要的内置函数:
abs() enumerate() filter() sum() map() max() min() open() range()
print() len() list() tuple() dict() set() str() float()
reversed() sorted() type() zip() dir()
# 1.print(self, *args, sep=' ', end=' ', file=None) print(1, 2, 3) print(1, 2, 3, sep='@') print(1, end=' ') print(2) # 2.list l1 = list() # 空列表 print(l1) l2 = list('tfdsf445') print(l2) # 3.dict 字典的创建方式 # (1)直接创建 # (2)元组的解构 d1 = dict([(1, 'one'), (2, 'two'), (3, 'three')]) print(d1) # (3)dict(key=value) d2 = dict(one=1, two=2) print(d2) # 4.abs ***返回绝对值 print(abs(-6)) # 5.sum 对可迭代对象求和,支持多个参数 print(sum([1, 2, 3, ])) print(sum([1, 2, 3, 4, 5], 10)) # 6.reversed 返回的是一个反转后的迭代器 # 而 对象.reverse() 方法是对原列表进行反转 l6 = [1, 2, 3, 4, 5, 6] obj6 = reversed(l6) print(obj6) print(list(obj6)) # 7.zip 拉链方法 l7 = [1, 2, 3, 4, 5] t7 = ('哈', '嘿', '哗') s7 = 'wasd' obj = zip(l7, t7, s7) print(obj) for i in obj: print(i) # ************以下方法最最最重要****可以增加key # 1.min max ls = [33, 2, -2, 54, 7, -1, -9] print(min(ls)) # 以绝对值的方法取ls中最小值 """ ls1 = [] func = lambda a: abs(a) for i in ls: ls1.append(func(i)) print(min(ls1)) """ # 凡是可以加key的:它会自动将可迭代对象中的每个元素作为实参按照顺序传入key对应的函数中, # 然后根据该函数的返回值进行比较大小,最后返回比较出的最小的值对应传入的的实参 print(min(ls, key=abs)) # 习题1 dic2 = {'a':3, 'b':2, 'c':1} # 求出值最小的键值对 #print(min(dic2)) # min默认会按照字典的键去比较大小 """ 思路 def func_k(k): return dic2[k] print(min(dic2, key=func_k)) """ print(min(dic2, key=lambda k: dic2[k])) # 习题2 # 根据l2中各元组中的数字比较大小 l2 = [('太白', 18), ('alex', 73), ('wusir', 35), ('昊天', 41)] print(min(l2, key=lambda t: t[1])[0]) # 2.sorted 排序 对可迭代对象进行排序并返回新的列表 # 而 sort是对原列表进行排序 l3 = [('大壮', 76), ('雪飞', 70), ('纳钦', 94), ('张程', 98), ('B哥', 96)] print(sorted(l3, key=lambda t: t[1])) # 按照元组里的数字进行排序 print(sorted(l3, key=lambda t: t[1], reverse=True)) # 从大到小 # 3.filter 过滤、筛选,类似于列表推导式的筛选模式 l4 = [2, 3, 4, 1, 6, 7, 8, 9] #print([i for i in l4 if i > 3]) # 返回的列表 ret3 = filter(lambda i: i > 3, l4) print(ret3) # 迭代器对象 print(list(ret3)) # 4.map 类似于列表推导式的循环模式 l5 = [1, 4, 9, 16, 25] #print([i**2 for i in range(1, 6)]) ret4 = map(lambda i: i**2, range(1, 6)) print(ret4) # 迭代器 print(list(ret4)) # 5.reduce from functools import reduce def func5(x, y): """ 第一次:x y : 1 2 x + y = 3 记录:3 第一次:x y : 3 3 x + y = 5 记录:6 第一次:x y : 6 4 x + y = 3 记录:10 """ return x + y r = reduce(func5, [1, 2, 3, 4]) print(r)
补充一些需要了解的内置函数:
# 1.eval **剥去字符串的外衣运算里面的有返回值的代码 # 不推荐使用,因为很危险 s1 = '1 + 3' print(eval(s1)) s2 = "{'name':'LGQ'}" print(eval(s2)) # 2.exec 与eval几乎一样,用于处理代码流 msg = """ for i in range(10): print(i) """ #exec(msg) # 3.hash 获取一个对象的哈希值,可哈希对象(int, str, Bool, tuple等不可变数据类型) print(hash('gfdsf21321')) # 4.help **帮助:即打印获取这个对象的说明(源码) print(help(str.upper)) # 5.callable ***判断这个对象是否可调用 # 6.complex 复数 print(complex(1, 2)) # 7.bin **将十进制转换成二进制并返回 print(bin(10)) # 8.oct **将十进制转换成八进制并返回 print(oct(10)) # 9.hex ** 十进制转成成六进制并返回 print(hex(10)) # 10.divmod **返回两个数相除的商和余数组成的元组 print(divmod(10, 3)) # 11.round **保留浮点数的小数位数 print(round(3.14159, 2)) # 12.pow 求x**y次幂(三个参数为x**y的结果对z取余) print(pow(2, 3)) print(pow(2, 3, 3)) # 13.bytes *** s1 = '刘天帝' #b = s1.encode('utf-8') #print(b) b = bytes(s1, encoding='utf-8') print(b) # 14.ord **输入该字符找该字符编码的位置 print(ord('a')) print(ord('中')) # Unicode # 15.chr **输入位置数字找出其对应的字符 print(chr(97)) print(chr(20102)) #Unicode # 16.repr ***返回一个对象的string形式(原形毕露) s2 = '哈哈' print(repr(s2)) msg = '我叫%r' % '刘天帝' print(msg) # 17.all **可迭代对象中,全部都是True才是True l1 = [1, '得分', True, 6] print(all(l1)) # 18.any **可迭代对象中,有一个是True就是True t1 = (2, False, True, '天地', 'ss') print(any(t1))