内置函数介绍:
内置参数官方详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii
下面是本人对常用内置函数的理解:
print(abs(-1)) #绝对值 1 print(all([1, 2, 3, 4, 5])) #True print(all([‘‘, 1, 2])) #False #bool为False的情况0、 空、None print(bin(12345), type(bin(12345))) #0b11000000111001 <class ‘str‘> print(chr(97)) #按照ascll表将数字转换成字符 a print(ord("a")) #按照ascll表将字符转换成数字 97 print(divmod(10, 3)) #返回(商,余数) (3, 1) print(id(1)) #查看内存地址 print(isinstance("123", int)) #False print(type("123") is str) #判断数据类型 True print(len("123")) #3 print("123".__len__()) #计算长度 3 print(pow(2, 3)) #2的3次方 8 print(pow(2, 3, 3)) #前两个参数是求次方,后一个参数是取余运算 2 print(type(repr(1234))) #将1234转成字符串 <class ‘str‘> print(type(str(1234))) #<class ‘str‘> l = [1, 2, 3] for i in reversed(l): #倒着打印 print(i) print(round(3.5)) # 四舍五入 4 print(round(3.3)) # 3 print(l[0:3:2]) #切片[1, 3] a = slice(0, 3, 2) print(l[a]) #切片[1, 3] print(sum([1, 2, 3, 4, 5])) #求和运算 15 print(sum([1, 2, 3, 4, 5]), 100) #可以设置初始值100, 结果为115 print(sum([], 100)) #100 print(eval("1+2*3/4")) #将字符串形式的表达式 解析并执行: 2.5 a = "print(‘hello exec‘)" exec(a) #将字符串形式的代码 解析并执行:hello exec #compile()#几乎用不到 #把一个代码文件加载进来,按exec和eval的方式解析并执行 def Sayhi(): name = "YL" print(locals()) #打印局部变量 {‘name‘: ‘YL‘} print(globals()) #打印全局变量 Sayhi() #------------------------------------------------------------------------------------- #map(function, sequence1, sequence2...) a = map(lambda x: x*x, range(10)) print(a) #<map object at 0x000001CBF8573A20> print(list(a)) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] #可以处理多个sequence,实现通过function方法对sequence1,sequence1,..进行处理,这就要求function也支持相应数量的参数输入: a = map(lambda x, y, z: x+y+z, range(10), range(10), range(10)) print(list(a)) #[0, 3, 6, 9, 12, 15, 18, 21, 24, 27] #------------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------- #reduce(function, sequence, starting_value): #仅能处理一个sequence,starting_value为初始化值,执行顺序为:先将每个sequence内部第一个值和starting_value进行function处理, #处理的结果再与sequence第二个值进行function处理,直到结束。 #->reduce的function函数必须要输入两个变量才能进行运算 from functools import reduce print(reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)) #21 #结果为21 执行顺序为---->((((( (1+2) +3)+4)+5)+6)) print(reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])) #20 #------------------------------------------------------------------------------------- #------------------------------------------------------------------------------------ # filter(function, sequence):对sequence中的item依次执行function(item),只能有1个sequence a = range(10) b = filter(lambda x: x > 5, a) print(b) #<filter object at 0x00000204ADDC0748> print(list(b)) #[6, 7, 8, 9] print(list(filter(lambda x: x+5, a))) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #filter可以看作是过滤函数,貌似并不能修改sequence里面的值 l = [1, 2, 0, 4, 0, 7] print(list(filter(None, l))) #当function是None时,返回的是Ture的item:[1, 2, 4, 7] #------------------------------------------------------------------------------------- a = list(range(10)) print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b = list(range(10, 16)) print(b) #[10, 11, 12, 13, 14, 15] print(list(zip(a, b))) #[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15)] #print msg = "又回到最初的起点" f = open("tofile", "w") print(msg, "记忆中你青涩的脸", sep="|", end="", file=f) #在文件tofile中写入:又回到最初的起点|记忆中你青涩的脸 import time #老牛逼了 for i in range(10): time.sleep(0.5) #print(".") print(".", end="", flush=True) # import sys # print("---", vars(sys)) # print("...", dir(sys)) # import time # for n in (100000, 200000, 300000, 400000): # data = b‘x‘*n # start = time.time() # b = data # while b: # b = b[1:] # print(‘bytes‘, n, time.time()-start) # # for n in (100000, 200000, 300000, 400000): # data = b‘x‘*n # start = time.time() # b = memoryview(data) # while b: # b = b[1:] # print(‘memoryview‘, n, time.time()-start)
小结:map、filter、reduce三个函数的区别
map函数,可以有多个sequence参数,并且可以修改参数sequence中的item的值
filter函数,只能有一个sequence参数,并且不能修改参数sequence中的item的值,相当于一个过滤函数
reduce函数,只能有一个sequence参数,并且不能修改参数sequence中的item的值,相当于一个累加函数,它的function参数必须有两个参数传入
原文地址:https://www.cnblogs.com/SilenceIOT/p/8231535.html
时间: 2024-12-10 22:55:44