sorted、map、reduce函数

版权声明:内容版权为CSDN用户:kayseen 所有,若您需要引用、转载,需要注明来源及原文链接 https://blog.csdn.net/m0_43394876/article/details/90106219

sorted

一共有是三个参数,第一个参数表示处理的数据,第二个参数表示的是排序的依据,第三个参数reverse=True时表示倒序排,默认正序排

list1 = [3,4,2,1]

a = sorted(list1)
print(a)    # [1,2,3,4] ,默认从小到大排序
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]  

# 用key函数排序:返回由tuple组成的list

sorted(students, key=lambda student : student[2])   # sort by age  
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]  

map

两个参数,第一个参数是一个函数,第二个参数是一个列表(序列或元组)

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

reduce

在python2中:

reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

>>>def add(x, y) :            # 两数相加
...     return x + y
... 
>>> reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
15

在 Python3 中:
reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数:

from functools import reduce
实例:

from functools import reduce

def add(x,y):
    return x + y

print (reduce(add, range(1, 101)))

输出结果为:
5050

猜你喜欢

转载自blog.csdn.net/m0_43394876/article/details/90106219
今日推荐