一部分内置函数

内置函数的整理:
def func(n):
    return n**n
print(func(4))
f =lambda x:x**x
print(f)
匿名函数 lambda 参数:返回值
f=lambda x,y,c:(x,y,c)
print(f(1,2,3))

排序 语法  sorted(iterable,key=None,regverse=False)
计算字符串的长度
lst=['as','sdf','asdf','gfd']
def func():
    print(sorted(lst,key=func))
lst = ['天龙八部', '西游记', '红楼梦', '三国演义']
print(sorted(lst, key=lambda s: len(s)>3))

筛选过滤

语法: filter(function,iterable)
根据条件去筛选
lst = [{'id': 1, 'name': 'alex', 'age': 18},
      {'id': 1, 'name': 'wusir', 'age': 17},
      {'id': 1, 'name': 'taibai', 'age': 16}, ]

ls = filter(lambda e: e['age'] > 16, lst)
print(list(ls)
结果:
[{'id': 1, 'name': 'alex', 'age': 18},
 {'id': 1, 'name': 'wusir', 'age': 17}]
映射函数 map     map(function,iterable)
可以对可迭代对象中的每个元素进行映射
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x + y, lst1, lst2)))
结果:
[3, 6, 9, 12, 15]
reduce   累积算法
from functools import reduce
def func(x, y):
    return x * 10 + y
    第一次的时候 x是1 y是2  x乘以10就是10,然后加上y也就是2最终结果是12然后临时存储起来了
    第二次的时候x是临时存储的值12 x乘以10就是 120 然后加上y也就是3最终结果是123临时存储起来了
    第三次的时候x是临时存储的值123 x乘以10就是 1230 然后加上y也就是4最终结果是1234然后返回了
l = reduce(func, [1, 2, 3, 4])
print(l)

l = reduce(lambda x,y:x*10+y,[1,2,3,4])
print(l)

enumerate() 获取枚举对象
lst = ['alex','wusir','taibai']
for i,k in enumerate(lst):
    print('这是序号',i)
    print('这是元素',k)

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元祖,
然后返回由这些元祖组成的内容,如果各个迭代器的元素个数不一致,则按照长度最短的返回
拉链的意思
lst1 = [1,2,3]
lst2 = ['a','b','c','d']
lst3 = (11,12,13,14,15)
for i in zip(lst1,lst2,lst3):
    print(i)
结果:
(1, 'a', 11)
(2, 'b', 12)
(3, 'c', 13)

lst=[2,3,4,5]
lst1=[3,4,5,6]
print(list(map(lambda x,y:x+y,lst,lst1)))#[5, 7, 9, 11]map函数映射
from functools import reduce#reduce  累  算
lst=[2,3,4]
print(reduce(lambda x,y:x*y,lst))#2*3*4  ==24

def foo(x):
    if x['age']>17:
        return x
ls=[{'name':'哥哥','age':18},{'name':'哥哥','age':12}]
print(filter(lambda x:x['age']>17,ls))  #没有用list 就是一个对象打印不出来<filter object at 0x0000000002417E80>   fillter 筛选
print(list(filter(lambda x:x['age']>17,ls))) #这样才可以打印出来

lst=['asd','sdfdg','s']
print(sorted(lst,key=lambda x:len(x)))#按长度去排序,这是升序
dic={1:2,2:3}
print(sorted(dic.values(),reverse=True))  #按键去排序  倒序


装饰器
import time
def inner(f):#----装饰器函数
    def waper(*args,**kwargs):
        s=time.time()
        f(*args,**kwargs)#---被装饰 函数
        d=time.time()
        print(s-d)
    return waper
@inner#@inner#
def func(*args,**kwargs):
    print('a',args)
# func=inner(func)
func(1,2,3,4)
原文地址:https://www.cnblogs.com/LMTlmt/p/10269387.html