作者:AI入门学习
来源:小伍哥
一、map函数
描述:接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素。如果传入了多个iterable参数,function 必须接受相同个数的实参并被应用于从所有可迭代对象中并行获取的项。
语法:map(function, iterable, ...)
#内置函数
list(map(abs,[-1,3,-5,8])) [1, 3, 5, 8] list(map(lambda x: x.center(3,'#'),['马云','马化腾','李彦宏'])) ['#马云', '马化腾', '李彦宏'] #自定义函数,计算3次方 def square(x) : return x ** 3 list(map(square, [1,2,3,4,5])) [1, 8, 27, 64, 125] # 使用 lambda 匿名函数 list(map(lambda x: x ** 3, [1, 2, 3, 4, 5])) [1, 8, 27, 64, 125] # 提供了两个列表,对相同位置的列表数据进行相加 list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])) [3, 7, 11, 15, 19] list(map(lambda x: x%2==1, [1,3,2,4,1])) [True, True, False, False, True]
描述:reduce方法,顾名思义就是减少,假设你有一个由数字组成的可迭代对象,并希望将其缩减为单个值。把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算reduce(f,[x1,x2,x3,x4,x5]) = f(f(f(x1,x2),x3),x4)
语法:reduce(function,sequence[,initial]=>value)
from functools import reduce nums = [6,9,4,2,4,10,5,9,6,9] print(nums) [6, 9, 4, 2, 4, 10, 5, 9, 6, 9] print(sum(nums)) 64 print(reduce(lambda val,x: val+x,nums)) 64 # 累计减法 reduce(lambda x,y:x-y,[1,2,3,4]) -8 #累计乘法 def multi(x,y): return x*y reduce(multi,[1,2,3,4]) 24 reduce(lambda x,y:x*y,[1,2,3,4]) 24
描述:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
过滤器,构造一个序列,等价于:[ item for item in iterables if function(item)]
在函数中设定过滤条件,逐一循环迭代器中的元素,将返回值为True时的元素留下,形成一个filter类型数据。
语法:filter(function, iterable)
fil = filter(lambda x: x>10,[1,11,2,45,7,6,13]) fil at 0x28b693b28c8> # 可迭代对象,不能直接查看 list(fil) [11, 45, 13] def isodd(num): if num % 2 == 0: return True else: return False list(filter(isodd,range(1,13))) [2, 4, 6, 8, 10, 12]
描述:sorted() 函数对所有可迭代的对象进行排序操作。
语法:sorted(iterable, key=None, reverse=False)
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作;list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
a = [5,7,6,3,4,1,2]
b = sorted(a) # 保留原列表 a
[5, 7, 6, 3, 4, 1, 2]
b
[1, 2, 3, 4, 5, 6, 7] #利用key L=[('b',2),('a',1),('c',3),('d',4)]
sorted(L, key=lambda x:x[1])
[('a', 1), ('b', 2), ('c', 3), ('d', 4)] #按年龄排序 students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2])
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] #按降序 sorted(students, key=lambda s: s[2], reverse=True)
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] #降序排列 a = [1,4,2,3,1]
sorted(a,reverse=True)
[4, 3, 2, 1, 1]
在看一个更实用的案例,加入一个列表存了各个品牌手机的销量以及售价,我们可以进行各种排序后输出。
info = [('Apple',800,9799), ('Xiaomi',40,3599), ('Oppo',40,4199), ('Vivo',100,4000), ('Huawei',40,6899),] #正常排序 print(sorted(info)) [('Apple', 800, 9799), ('Huawei', 40, 6899), ('Oppo', 40, 4199), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599)] #按销量排序 print(sorted(info,key = lambda x: x[1],reverse=True)) [('Apple', 800, 9799), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599), ('Oppo', 40, 4199), ('Huawei', 40, 6899)] #按商品价格排序 print(sorted(info,key = lambda x: x[2],reverse=True)) [('Apple', 800, 9799), ('Huawei', 40, 6899), ('Oppo', 40, 4199), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599)] #先价格 再销量排序 print(sorted(info,key = lambda x: (x[2],x[1]),reverse=True)) [('Apple', 800, 9799), ('Huawei', 40, 6899), ('Oppo', 40, 4199), ('Vivo', 100, 4000), ('Xiaomi', 40, 3599)]
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03