一、内置函数
1,数据类型:int,bool ..........
2,数据结构:dict,list,tuple,set,str
3,reversed--保留原列表,返回一个反序的迭代器
reversed() l =[1,2,3,4,5] l2 =reversed(l) print(l2)
4,slice切片
l =(1,2,23,213,5612,234,43) sli =slice(1,5,2) print(l[sli])
#(2,213)
5,format
print(format(‘test‘, ‘<20‘)) print(format(‘test‘, ‘>40‘)) print(format(‘test‘, ‘^40‘))
6,bytes
#bytes 转换成bytes类型
# 我拿到的是gbk编码的,我想转成utf-8编码
# print(bytes(‘你好‘,encoding=‘GBK‘)) # unicode转换成GBK的bytes
# print(bytes(‘你好‘,encoding=‘utf-8‘)) # unicode转换成utf-8的bytes
7,bytearray
b_array = bytearray(‘你好‘,encoding=‘utf-8‘)
print(b_array)
print(b_array[0])
7,zip
l = [1,2,3,4,5] l2 = [‘a‘,‘b‘,‘c‘,‘d‘] l3 = (‘*‘,‘**‘,[1,2]) d = {‘k1‘:1,‘k2‘:2} for i in zip(l,l2,l3,d): print(i)
8,all
只有有一个为false则返回false
9,any
只要有一个为True则为True
10,filter
执行了filter之后的结果集合一定是《= 执行之前的个数
#filter只管筛选,不会改变原来的值
11,map
#执行前后元素的个数不变,值可能发生改
12,sorted
#用c语言编写。
数据少、短、且要保留原来的列表
二、匿名函数
def add(x,y): return x+y
转换成匿名函数为:
add = lambda x,y:x+y print(add(1,2))
1,找出value值最大的key
dic={‘k1‘:10,‘k2‘:100,‘k3‘:30} def func(key): return dic[key] print(max(dic,key=func)) #根据返回值判断最大值,返回值最大的那个参数是结果 print(max(dic,key=lambda key:dic[key])) max([1,2,3,4,5,-6,-7],key=abs)
2,说出代码的最终结果
d = lambda p:p*2 t = lambda p:p*3 x = 2 x = d(x) #x = 4 x = t(x) #x = 12 x = d(x) #x = 24 print(x) #--->24
3、
#现有两元组((‘a‘),(‘b‘)),((‘c‘),(‘d‘)),
# 请使用python中匿名函数生成列表[{‘a‘:‘c‘},{‘b‘:‘d‘}]
ret = zip(((‘a‘),(‘b‘)),((‘c‘),(‘d‘))) ret = map(lambda t:{t[0]:t[1]},ret) print(list(ret))
4,以下代码的输出是什么?请给出答案并解释。 def multipliers(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multipliers()]) 请修改multipliers的定义来产生期望的结果。
def multipliers(): return (lambda x:i*x for i in range(4))#改为生成器 print([m(2) for m in multipliers()])