map和lambda表达式

2022-11-08  本文已影响0人  Q_Mia

一. lambda

匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。

  1. lambda 函数可以接收任意多个参数 (包括可选参数)
  2. 包含的表达式不能超过一个
  3. lambda 函数不能包含命令
  4. lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。
    def sq(x):
        return x*x

    for i in range(1, 5):
        print(sq(i))

    p = lambda y: y * y
    for j in range(1, 5):
        print(p(j))

二. map

map是Python的内置函数。

map(function, literration...)
  1. function:函数
  2. literration:一个序列或者多个序列
  3. python2 返回list
  4. python3 返回迭代器,需使用list转换
    map的使用示例如下:
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
print(list(map(lambda i: i * i, list1))) #[1, 4, 9, 16, 25]
print(list(map(lambda i, j: i * j+1, list1, list2))) #[7, 15, 25, 37, 51]

    # 使用map函数将数字转换成字符串
    num = 134986
    l1 = []
    while num:
        x = num % 10
        l1.insert(0, x)
        num = num // 10
    print(list(map(str, l1)))


    # 序列[1, 3, 5, 7, 9]变换成整数13579
    print(reduce(lambda x, y: x * 10 + y, [1, 3, 5, 7, 9]))

    # 将['1', '3', '5', '7', '9']转成13579
    print(reduce(lambda x, y: x * 10 + y, map(int, ['1', '3', '5', '7', '9'])))
上一篇下一篇

猜你喜欢

热点阅读