python基础之内置函数与匿名函数,,python基础之内


python基础之内置函数与匿名函数

内置函数68个如下图

技术分享图片

重点的关注的内置函数len,sorted,enumerate,all,any,zip,filter,map,reversed,slice

len(o):参数为O,返回数据类型的长度
sorted(): sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
      iterable:是可迭代类型; cmp:用于比较的函数,比较什么由key决定;
      key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项
      reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,默认升序。
      返回值:返回一个排序后的列表(字典是按键值排序后的元组组成的列表)
      常用在字典排序,按键排序或者按值排序
enumerate(): 枚举,获取可迭代对象的索引值

all():用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,
   否则返回 False。元素除了是 0、空、FALSE 外都算 TRUE。
any():判断x对象是否为空对象,如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true
zip():接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表,
reversed():反转
slice():切片
map():接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
filter():接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

内置函数的练习sorted,enumerate,zip,filter,map,reversed,slice

#字典排序‘‘‘原理:1.按健排序   dict_keys2.按值排序   dict_values3.按键值中的健或值排序   dict_items ,将键值转为元组存在list,key选择按第一个还是第二个排序。‘‘‘dic = {‘a‘:2,‘b‘:4,‘f‘:7,‘d‘:6,‘e‘:8}print(dic.keys())    #dict_keys([‘a‘, ‘b‘, ‘d‘, ‘e‘])print(dic.values())  #dict_values([2, 4, 6, 8])print(dic.items())  #dict_items([(‘a‘, 2), (‘b‘, 4), (‘d‘, 6), (‘e‘, 8)])li3 = sorted(dic.keys(),)       #[‘a‘, ‘b‘, ‘d‘, ‘e‘, ‘f‘]li4 = sorted(dic.values())      #[2, 4, 6, 7, 8]li5 = sorted(dic.items(),key=lambda x:x[0])  #[(‘a‘, 2), (‘b‘, 4), (‘d‘, 6), (‘e‘, 8), (‘f‘, 7)]#enumerate:获取可迭代对象中元素的索引值,l = [3,5,6,2,9,‘q‘,‘w‘,‘c‘]for index,k in enumerate(l):    print(‘index = %s,k = %s‘%(index,k))‘‘‘打印:index = 0,k = 3index = 1,k = 5index = 2,k = 6index = 3,k = 2index = 4,k = 9index = 5,k = qindex = 6,k = windex = 7,k = c ‘‘‘#zip将两个或者多个可迭代对象相同的索引值取到一起,返回一个zip object,需要for循环取值l = [4,3,6,5]l1 = [‘q‘,‘w‘,‘e‘]l_li = zip(l,l1)print(l_li)for i in l_li:    print(i)‘‘‘i遍历为:   (4, ‘q‘)(3, ‘w‘)(6, ‘e‘)‘‘‘#filter# 格式def func(i):    return i%2 ==0li6 =list(filter(func,range(10)))     #[0, 2, 4, 6, 8] 满足留下,不满足舍去print(li6)# map   map(func,iter):iter经func后返回一个对象def pow2(i):    return i*il =[1,2,3,6,5,7]li7 = list(map(pow2,l))print(li7)          #[1, 4, 9, 36, 25, 49],map(func,L)

匿名函数

函数名 = lambda 参数 :返回值#参数可以有多个,用逗号隔开#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值#返回值和正常的函数一样可以是任意数据类型add = lambda x,y:x+yprint(add(3,4))

习题:

求10-100000内每位加起来等于5的数,如14,23。。。。10023等,

请先思考再看答案,提示:可以先写个分解函数,将拆分的数字家和为5的筛选出来。这是基础的

技术分享图片
#第一种常规解法def split_num(i):    strnum = str(i)    sum = 0    for i in strnum:        i =int(i)        sum += i    return sumnum_list = []for i in range(10,100000):    nums = split_num(i)    if nums == 5:        num_list.append(i)for i in num_list:    print(‘%5s‘%i,end=‘,‘)    if (num_list.index(i)+1)%10 == 0:        print()print(‘\n总计有%s个‘%len(num_list))#充分利用内置函数ls = [x for x in range(10,100000) if sum(map(int,str(x)))==5]for k,v in enumerate(ls):    print(‘%5s‘%v,end=‘,‘)    if (k+1) % 10 == 0 :        print()print(‘\n总共有%s个‘%len(ls))
View Code

python基础之内置函数与匿名函数

评论关闭