python快速学习回忆版本------第六章-2

'''
python 内置map() 和reduce()

map(fn,lsd)
参数:
    fn:是一个函数
    lsd:集合
功能:将传输的函数fn依次作用到lsd集合中的每个元素,并把结果作为新的Iterator返回
'''

def chr2int(chr):
    return {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[chr]
ret = map(chr2int,"13586")
print(ret)
print(list(ret))

'''
reduce(fn,lsd)
参数:
    fn:函数
    lsd:集合
功能:传入的fn 函数作用在lsd集合中,这个fn函数必须接受两个参数,reduce把结果继续和序列的下一个
     元素作累计计算
     reduce(f,[a,b,c,d]) = f(f(f(a,b),c),d)

'''
#求一个序列的和
from functools import reduce
def func(x,y):
    return x+y
res = reduce(func,[1,2,3,4,5,6])
print(res)

#配合map实现str2int
def str2int(s):
    def chrToint(chr):
        return {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}[chr]
    def f(x,y):
        return x*10+y
    return reduce(f,map(chrToint,s))

'''
    filter(fn,lsd)
    参数:
    fn:函数
    lsd:集合

功能:用于过滤序列,把传入的fn函数依次作用在lsd集合中的每个元素上,
      然后根据返回值是True还是False决定是否保留该元素
'''
#去掉列表里的偶数
li1 = [1,2,3,4,5,6,7,8,9]

def fun2(num):
    if num%2==0:
        return False
    return True
res2 = filter(func,li1)
print(li1)
print(res2)

#删除列表中是空字符串的元素
li2=["a","","  ","c","","b"]

def fun5(item):
    return item and item.strip()   
res = filter(fun5,li2)
print(list(res))

#排序
#升序
li3=[3,4,1,2,5]
li4=sorted(li3)
print(li4)
#按照绝对值大小排序
li5=[3,-4,1,-2,5]
li6=sorted(li5,key=abs)
print(li6)
#降序
li7=sorted(li3,reverse=True)
print(li7)

#字符串大小问题
#原理:获取两个字符串的第一个字符进行比较,谁的ASCII值大那么谁就大,相同就获取下一个
print("a">"b")

#自定义排序逻辑
li8=["abc","awg","agaerger","eherth"]
def fun6(x):
    return len(x)
li9=sorted(li8,key=fun6)
print(li9)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值