内置函数提供的一个通用的排序方案,sorted(),filter()筛选函数,map()映射函数

本文深入探讨了Python中排序函数sorted的高级用法,包括如何使用自定义函数作为排序依据,以及filter和map函数在数据处理中的高效应用。通过实例讲解,读者将学会如何灵活运用这些函数解决实际问题。
lst = ['聊斋','西游记','三国演义','葫芦娃','水浒传','年轮','亮剑']
def func(s):
    return len(s) % 2
ll = sorted(lst,key=func,reverse=True)  # reverse = True 相当于从大到小排列
print(ll)  # ['西游记', '葫芦娃', '水浒传', '聊斋', '三国演义', '年轮', '亮剑']
# key:排序方案,sorted函数内部会把迭代对象中的每一个元素拿出来交给后面的key
# 后面的key计算出一个数字,作为当前这个元素的权重,整个函数根据权重重新进行排序

 

lst = [{"id":1, "name":'alex', "age":18},
 {"id":2, "name":'wusir', "age":16},
 {"id":3, "name":'taibai', "age":17}]

ll = sorted(lst,key=lambda el:el['age'])
print(ll)

filter()

lst = ['张无忌','张铁林','赵一宁','石可欣','马大帅']
def func(el):
    if el[0] == '':
        return False # 不想要的
    else:
        return True # 想要的

f = filter(func,lst)  # 将lst中的每一项传递给func,所有返回True的都会保留,所有返回False都会被清除
print('__iter__'in dir(f))  # 判断是否可以进行迭代
for e in f:
    print(e)
lst = ['张无忌','张铁林','赵一宁','石可欣','马大帅']


f = filter(lambda el:el[0]!='',lst)  # 将lst中的每一项传递给func,所有返回True的都会保留,所有返回False都会被清除
print('__iter__'in dir(f))  # 判断是否可以进行迭代
for e in f:
    print(e)

 

map()

映射函数

语法: map(function, iterable) 可以对可迭代对象中的每一个元素进行映射. 分别取执行
function

def func(e):
 return e*e
mp = map(func, [1, 2, 3, 4, 5])
print(mp)  # <map object at 0x0000000001DC71D0>
print(list(mp))  # [1, 4, 9, 16, 25]

 

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]
lst1 = [1, 2, 3]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))   # [3, 6, 9]

 也有水桶效应

转载于:https://www.cnblogs.com/Little-Raccoon/p/10843034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值