day18 Pyhton学习 内置函数最后七个
1. enumerate 枚举函数
for i in enumerate(['a','b','c'],1): print(i)
#(1, 'a')(2, 'b')(3, 'c')
goods_lst= [ {'name':'电脑','price':1999}, {'name':'鼠标','price':20}, {'name':'美女','price':20}, ] for index,dic in enumerate(goods_lst,1): print(index,dic['name'],dic['price'])
#1 电脑 1999 2 鼠标 20 3 美女 20
2. all参数iterable,只要有一个为假返回False
print(all((1,2,3,True))) print(all((1,2,3,0,True))) print(all((1,2,3,True,[]))) print(all((1,2,3,True,''))) #True,False,False,False
3.any 参数iterable 只要有一个为真返回True
print(any((1,2,3,True))) print(any((1,2,3,0,True))) print(any((1,2,3,True,[]))) print(any(({},False,0,[],''))) #True,True,True,False
4.zip 拉链函数 返回迭代器-节省内存
a = (1,2,3,4) b = ('a','b','c') c = ['111','222'] d = {'k1':'v1','k2':'v2'} ret = zip(a,b,c,d) print(ret) for i in ret: print(i) #(1, 'a', '111', 'k1') #(2, 'b', '222', 'k2')
5. filter 筛选
ret = filter(None,[1,2,3,0,False]) # 只保留真的 print(ret) for i in ret: print(i)
#1 2 3
def func(i): return type(i) is not dict l = ['sjkdhf',[1,2,3],{},()] # 去掉列表中的字典,用filter ret = filter(func,l) print(list(ret)) #['sjkdhf', [1, 2, 3], ()] # filter 就像 带着if条件的列表推导式 l = ['sjkdhf',[1,2,3],{},()] print([i for i in l if type(i) is not dict]) #['sjkdhf', [1, 2, 3], ()]
6.map 一个迭代器中的每一个元素都需要去做同一个操作并返回一个结果组成一个新列表的时候map来处理
def func(i): return i*'*' ret = map(func,[1,2,3]) print(ret) for i in ret: print(i) #结果 * ** ***
range(10)#内部的每一个值的平方组成的新列表 def func(num): return num**2 ret = map(func,range(10)) print(list(ret))
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
7.sorted() 排序 根据key对应的函数的返回值的大小来排序
由于必须要知道后面的值是谁 才能排出顺序,所以结果就是排序后的结果而不是可迭代的
l = [-3,1,2] l.sort() #[-3, 1, 2] print(l) def func(n): return abs(n) l.sort(key = func) print(l) #[1, 2, -3]
#sort在原列表上进行修改
l = [1,-3,2] new_l = sorted(l) # sorted 在不改变原列表的情况下 生成一个新列表 print(l)#[1, -3, 2] print(new_l)#[-3, 1, 2] def func(n): return abs(n) ret = sorted(l,key = func) print(ret)#[1, 2, -3]
# 面试重点 # filter(func,iterable) map(func,iterable) sorted(iterable,key) max(iterable,key) min(iterable,key) zip # 常用的 # range enumerate print input open 基础数据类型 bytes