> 文章列表 > Python从入门到精通11天(lambda匿名函数和map函数的使用)

Python从入门到精通11天(lambda匿名函数和map函数的使用)

Python从入门到精通11天(lambda匿名函数和map函数的使用)

lambda匿名函数和map函数的使用

  • lambda匿名函数
  • map函数
  • lambda与map的联用

lambda匿名函数

匿名函数在计算机编程中是指一类无需定义标识符(函数名)的函数或子程序,lambda函数是一种匿名函数,在Python中只需用表达式而无需声明,可以用来创建简单的、一次性的函数。通常用于在函数内部定义小型函数,可以用在需要函数对象的任何地方。

lambda函数的语法:lambda arguments: expression,其中arguments是函数的参数,expression是函数的返回值。

  • 用lambda函数进行排序

代码如下:


list1 = [(1, 2), (3, 4), (5, 6), (7, 8)]# 将数列按每个元组的第二个数的大小进行逆序排列
list1.sort(key=lambda x: x[1], reverse=True)
print(list1)

这里我们使用了lambda函数作为key函数来排序列表中的元组,通过对元组中的第二个元素进行逆序排序。

sort()方法可以接收一个key参数,用于指定一个函数,该函数将被应用于序列中的每个元素以便进行比较排序。这里的key函数只接收一个参数,并返回用于比较排序的值。用lambda函数作为参数将要比较排序的值传给key参数,然后sort()函数根据返回的值进行排序。

map函数

map(映射)函数是一个高阶函数的名字,它跟数学中的映射是一样的,指两个对象之间的关系。在Python中它接收一个函数和一个序列作为输入,并对序列中的每个元素进行同等的改变,然后返回一个新列表。就相当于 y = x 到 y = 3 x y = x 到 y = 3x y=xy=3x中将 x x x扩大为原来的3倍,就将原来的 y = x y = x y=x映射到了 y = 3 x y = 3x y=3x这个函数当中。

map函数的语法:map(function,itetable),其中function是对序列中每个元素进行操作的函数,itetable是一个序列,可以是列表、元组、集合等。

代码如下:


my_list = [1, 2, 3, 4, 5]# 用str字符串转换函数
string_list = list(map(str, my_list))
print(string_list)

上面将列表中的整型元素转变成字符串类型,并返回一个新的列表。

lambda与map的联用

  • 使用map函数对序列中的每个元素进行平方

代码如下:


my_list = [1,23,4]map_list = list(map(lambda x: x**2, my_list))
print(map_list)

将my_list列表中的数依次映射到自己的平方的对象中,然后返回一个新的列表。

  • 对字符串中的每个字符进行大写

常规的操作是直接使用str.upper(),这里我们使用lambda和map函数进行联用。代码如下:


my_string = "hello world"# 使用str.upper()方法进行操作
print(my_string.upper())# 使用join函数将产生的字符串加入新字符串中
upper_string = ''.join(list(map(lambda x: x.upper(), my_string)))
print(upper_string)