python笔记,匿名函数与filter,map,sort

文章展示了Python中lambda函数的使用,包括其作为匿名函数的特性,并通过示例解释了filter、map和sort/sorted函数在处理数据时的应用。这些函数在Python编程中常用于简化代码和数据操作。
摘要由CSDN通过智能技术生成




def fn(i):
    return i % 3 == 0
#上下等价
lambda i : i%3==0

# 匿名对象,lambda函数表达式  (语法糖)
# lambda函数表达式,用来创建一些简单的函数,他是函数创建的又一种方式
# 语法 : lambda 参数列表 : 返回值
# 匿名函数一般都是作为参数使用,其他地方一般不会使用

lambda a,b : a + b

if __name__ == "__main__":
    r = filter(fn,[1,3,5,7,9])
    print(list(r))

    print("***************************")
    r1 = filter(lambda i : i%3==0 , [1,3,5,7,9])
    print(list(r1))

    print("***************************")

    print(lambda a,b : a + b)

    # 一般不这样用
    print((lambda a,b:a+b)(10,20))

    # 一般也不这样用(将匿名函数赋值给一个变量)
    fn6  = (lambda a,b:a+b)
    print(fn6(10,30))

    # map()
    # map()可以对可迭代对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回
    l = [1,2,3,4,5,6,7,8,9,10]
    r3 = map(lambda i: i +1,l)
    print(list(r3))


    #sort()
    # 该方法用来对列表中的元素进行排序
    # sort()方法默认是直接比较列表中的元素的大小
    # 在sort()可以接收一个关键字参数,key
    # key需要一个函数作为参数
    l=['bb','aaaa','c','ddddddd','fff']
    l.sort()
    print(l)
    l.sort(key=len)
    print(l)
    print("***************************")
    l2 = [2,5,'1','6','4']
    l2.sort(key=int)
    print(l2)

    # sorted()
    # 这个函数和sort()用法基本一致,但是sorted()可以对任意的序列进行排序
    # 并且使用sorted()排序不会影响原来的对象,而是返回一个新对象
    l3 = [2,5,'1',3,'6','4']
    print('before sorted:',l3)
    l4=sorted(l3,key=int)
    print('after sorted:',l3)
    print('after sorted and return as:',l4)
    print("***************************")
    l5='12465714328972165'
    print('before sorted:',l5)
    print('after sorted and return as:',sorted(l5,key=int))

结果:

[3, 9]
***************************
[3, 9]
***************************
<function <lambda> at 0x7f53babefee0>
30
40
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
['aaaa', 'bb', 'c', 'ddddddd', 'fff']
['c', 'bb', 'fff', 'aaaa', 'ddddddd']
***************************
['1', 2, '4', 5, '6']
before sorted: [2, 5, '1', 3, '6', '4']
after sorted: [2, 5, '1', 3, '6', '4']
after sorted and return as: ['1', 2, 3, '4', 5, '6']
***************************
before sorted: 12465714328972165
after sorted and return as: ['1', '1', '1', '2', '2', '2', '3', '4', '4', '5', '5', '6', '6', '7', '7', '8', '9']

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值