- filter函数:
filter函数的功能:用for循环对一个列表元素进行筛选
格式:filter(功能函数,参数)
注意:filter返回值是一个object对象,需要用list转换成一个列表
不用filter函数时所用的代码:
i = ['alex','alex1_sb','alex2_sb','alex3_sb','alex4_sb','alex5_sb','alex5_sb'] def sb_end(x): return x.endswith('sb') def sb_guolv(func,num): a = [] for i in num: if not func(i): a.append(i) return a print(sb_guolv(sb_end,i)) print(list(sb_guolv(lambda x:x.endswith('sb'),i)))
以上代码用filter函数简化代替:
i = ['alex','alex1_sb','alex2_sb','alex3_sb','alex4_sb','alex5_sb','alex5_sb'] print(list(filter(lambda x:not x.endswith('sb'),i)))
- map函数
map函数的功能:一个列表的每个元素进行自增
格式:map(功能,参数)
注意:map返回值是一个object对象,需要用list转换成一个列表
不用map函数时的代码:
i = [1,2,3,4,5,6,7,8,9,10] def add_num(x): return x+1 def map_test(func,num): n = [] for j in num: b = func(j) n.append(b) print(a)
以上代码用map函数代替:
print(list(map(lambda x:x+1,[1,2,23,4,5,6])))
- reduce函数
功能:对一个列表的所有元素进行合并操作。
格式:reduce(功能函数,参数)
不用reduce函数的代码:
num = [1,2,3,100] def reduce_test(func,x,y = None): if y == None: a = x.pop(0) else: a = y for i in x: a = func(a,i) return a print(reduce_test(lambda x,y:x*y,num,100))
用reduce代替:
num = [1,2,3,100] from functools import reduce print(reduce(lambda x,y:x*y,num))
- 其它一些比较简单的内置函数:
###########编码: # print(bytes('你好!',encoding='utf-8')) # print(b'xe4xbdxa0xe5xa5xbdxefxbcx81'.decode('utf-8')) # print(bytes('你好骚啊!',encoding='gbk')) # print('你好骚啊!'.encode('gbk')) # print(b'xc4xe3xbaxc3xc9xa7xb0xa1xa3xa1'.decode('gbk')) ##########ASCII编码表: # print(chr(96)) #########反过来: # print(ord('a')) ##########dir:打印某一个对象的所有方法: # print(dir(dir)) ########divmod:取商取余,进行分页操作: # print(divmod(100,3)) #######eval:提取一个字符串的字典;将一个字符串里的运算进行提取并计算出结果: # name1 = "{'alex':'123'},{'alex1':'123'}" # print(eval(name1)) # name2 = '1+(2+3*5/5+2)-2**2' # print(eval(name2)) #########hash:哈希编译;每一次的计算结果都是随机的 # name = 'name' # print(hash(name)) #########10进制转换: # print(bin(12)) #10进制转2进制 # print(oct(12)) #10进制转8进制 # print(hex(12)) #10进制转16进制 ###### isinstance:判断一个数据是否属于某一个数据类型 # print(isinstance(123,int)) # print(isinstance('123',int)) ##############max,min:求最大最小值: # name = [1,2,3,4,5,6,-2,100] # print(max(name)) # print(min(name)) ############# zip(拉链):将两个列表或者字典转化成一一对应的关系。 # print(dict(zip([1,2,3,4,5,6],['alex','alex','alex','alex','alex','alex']))) # a = {1: 'alex', 2: 'alex', 3: 'alex', 4: 'alex', 5: 'alex', 6: 'alex'} # print(list(zip(a.keys(),a.values()))) # name = {'alex1':10,'alex2':11,'alex3':15,'alex4':-100,'alex5':100} # # a = zip(name.values(),name.keys()) # # print(list(a)) # print(max(zip(name.values(),name.keys()))) ############## max函数的终极用法: ##################### # 需求:用max函数取出这个列表中年龄最大的一个值 # name = [ # {'name':'alex1','age':18}, # {'name':'alex2','age':20}, # {'name':'alex3','age':21}, # {'name':'alex4','age':100}, # {'name':'alex5','age':1000} # ] # l = [] # for i in name: # l.append(i['age']) # print(max(l)) # print(max(name,key = lambda list:list['age'])) #############pow: # print(pow(2,3)) ####相当于:2**3 # print(pow(2,3,2)) ####相当于:2**3%2 2的三次方除以2的余数 ############## reversed():反转函数: # l = [1,2,3,4,5,6,7,8,9] # print(list(reversed(l))) ############## slice:切片,相当于[a:b] # a = 'hello world' # s = slice(3,8) # print(a[s]) # print(a[3:8]) ############# sorted():排序 # name = [ # {'name':'alex1','age':18}, # {'name':'alex2','age':20}, # {'name':'alex3','age':21}, # {'name':'alex4','age':100}, # {'name':'alex5','age':1000} # ] # print(sorted(name,key=lambda dic:dic['age'])) # a = [9,8,7,6,5,4,3,2,1,0] #只能排同数据类型 # print(sorted(a)) # # print(sorted(name)) #这个格式是错误的