首页 > 其他分享 >三种常用的内置函数--必须牢记

三种常用的内置函数--必须牢记

时间:2024-07-02 08:58:14浏览次数:23  
标签:内置 return -- res li 牢记 test sb array

有三种常用的内置函数,特别牛逼!!!
下面逐个介绍,看仔细了。

1、map()**
用途:处理一个可迭代对象,如列表、元组和字符串。以列表为例,处理的是里面的元素,返回的也是一个同等长度的列表。
老规矩,举例说明。
比如:对于列表[1,2,3,4,5],怎样变成[2,3,4,5,6]

(1) 常规做法
num_l = [1,2,3,4,5]
def test(array):
li = []
for i in array:
i += 1
li.append(i)
return li

print(test(num_l))
输出结果:[2, 3, 4, 5, 6]

(2)优化做法
上面这个方法显然是在函数体中把逻辑写死了,如果需要不断的变换,则每次都要去改这个主函数体,显然不好。来吧,优化一下。
num_l = [1,2,3,4,5]
def num_add(x):
return x + 1

def test(func,array):
li = []
for i in array:
li.append(func(i))
return li

print(test(num_add,num_l))
输出结果:[2, 3, 4, 5, 6]

(3)最牛逼的做法
其实方法上面(2)已经优化的挺好了,但是代码显得还是很啰嗦,python的牛逼之处就在于代码非常精简,牛逼的很。来,伙计们,看看下面的骚操作。
num_l = [1,2,3,4,5]
res = list(map(lambda x:x+1,num_l))
print(res)
输出结果:[2, 3, 4, 5, 6]

2、filter()*
用途:处理可迭代对象,比如列表,元组,字符串,处理每一个元素返回bool类型,最常见的用法是用于筛选数据。
不废话了,上例子。需求:把如下列表['sb_jack','rose','sb_pig']中的sb全部删除,只留下rose

(1)常规做法
people_list = ['sb_jack','rose','sb_pig']
def test(array):
li = []
for i in array:
if not i.startswith('sb'):
li.append(i)
else:
pass
return li

res = test(people_list)
print(res)
输出结果:['rose']

(2)优化版本
people_list = ['sb_jack','rose','sb_pig']
def move_name(n):
return n.startswith('sb')

def test(func,array):
li = []
for i in array:
if not func(i):
li.append(i)
else:
pass
return li

res = test(move_name,people_list)
print(res)
输出结果:['rose']

(3)牛逼版本 --三行代码把傻逼从列表里过滤掉。
people_list = ['sb_jack','rose','sb_pig']
res = list(filter(lambda n:not n.startswith('sb'),people_list))
print(res)
输出结果:['rose']

3、reduce -- 需要先导入from functools import reduce
用途:对可迭代对象做处理,并最后得到一个结果。函数test()可以传三个参数,第一个参数是个函数,第二个参数是要计算的列表,第三个参数可传个默认值,第三个参数不传也没关系。
比如计算一个列表的元素的加和。举例:计算列表[1,2,3,9,7,5]中每个元素的加和。

(1)常规版本
l = [1,2,3,9,7,5]
def test(array):
sum = 0
for i in l:
sum += i
return sum

res = test(l)
print(res)
输出结果:27

(2)优化版本
l = [1,2,3,9,7,5]
def sum_test(x,y):
return x + y

def test(func,array):
res = array.pop(0)
for i in array:
res = func(res,i)
return res

print(test(sum_test,l))
输出结果:27

(3)牛逼版本
from functools import reduce
l = [1,2,3,9,7,5]
res = reduce(lambda x,y:x+y,l)
print(res)
输出结果:27

以上就是三种常见的内置函数,非常牛逼,可以明显精简代码。

标签:内置,return,--,res,li,牢记,test,sb,array
From: https://www.cnblogs.com/kkbest/p/18275614

相关文章

  • 五分钟了解MQ消息集成
    一、MQ消息集成的定义MQ消息集成是通过消息中间件(MessageQueue)实现的一种数据集成方式。它通过将数据发送到中间件中,再从中间件中接收数据,实现不同系统之间的数据交换。在MQ消息集成中,发送者和接收者之间不需要直接建立连接,而是通过消息中间件来实现数据传输。消息中间件......
  • 蓝桥杯Java组常用知识点
    基本数据类型int的取值范围:-2^31~2^31-1-2147483648~2147483647(约等于10的9次方)longlong的取值范围:-2^63~(2^63-1)-9223372036854775808~9223372036854775807(约等于10的18次方)输入输出使用文件流对输入输出的重要性:https://blog.csdn.net/weixin_43554580/article......
  • Matlab脚本开发之在外部打开Excel文件
    Matlab脚本开发之在外部打开Excel文件提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、目的二、源码总结前言提示:这里可以添加本文要记录的大概内容:在Matlab的文件夹结构中,在Excel文件上点右键,有个“OpenOutsideMATLAB”选项,该......
  • 基于web的酒店客房管理系统 毕业设计 springboot+Vue+mysql
    介绍我开发了一个基于Web的酒店客房管理系统,旨在通过现代化的管理工具提升酒店客房管理的效率和用户体验。该系统分为管理员角色和用户角色,管理员负责管理用户、客房信息、预约、入住、退房等内容,用户则可以查询客房信息、进行预约、管理入住和退房等操作。系统通过丰富的功能......
  • Linux内存不够了?看看如何开启虚拟内存增加内存使用量
    1、为什么要使用虚拟内存当我们没有多余的钱去购买大内存的云服务器时,但是当前服务器里面的软件和程序运行的比较多导致内存不够用了。这个时候可以通过增加虚拟内存来扩大内存容量。但是在启用虚拟内存时,需要仔细考虑系统的实际需求和硬件配置,以及权衡虚拟内存的优缺点,考虑好利......
  • 基于摄像头抓取学生人脸朝向判断学生上课状态检测的算法
    智能检测学生听课状态的网络模型:开启高效学习的新篇章 在当今数字化教育的浪潮中,我们致力于研发一款创新的检测学生听课状态的网络模型,旨在为教育领域带来革命性的变革,提升教学质量,优化学生的学习体验。 一、模型概述这款网络模型基于先进的人工智能技术和深度学习算法......
  • 中文编程为女友制造一场浪漫的邂逅
    用中文编程来为女友制造一场浪漫的邂逅,效果如下花瓣是随机掉落的,女友图片是多张动态切换的,启动之后会是全屏模式,还有喜欢的音乐播放环境:易语言代码如下主代码.版本2.支持库shellEx.支持库spec.支持库iext2.程序集窗口程序集1.程序集变量花瓣集,落花,,"0......
  • 英伟达连跌3日,传字节与博通合作研发AI芯片,讯飞星火V4.0周四发布
      ChatGPT狂飙160天,世界已经不是之前的样子。更多资源欢迎关注每日行业新闻1、英伟达单日下跌6.7%,拖累标普500指数和纳指走低昨夜,英伟达暴跌6.7%,创两个月以来最大单日跌幅,为连续三个交易日下跌,市值落于3万亿美元之下。且在技术上已经进入回调状态,即从近期收盘峰值下跌1......
  • 在华销量连跌五年,日产关闭常州工厂,车主很担心
      ChatGPT狂飙160天,世界已经不是之前的样子。更多资源欢迎关注投产不到4年常州工厂关闭公开资料显示,日产常州工厂本属于郑州日产,2018年被东风日产接手。彼时正是日产中国的销量巅峰,一年卖了156万台车,超过本田和丰田,成为日系车在华销冠。为此,东风日产雄心勃勃地增资......
  • [AIGC] 常用的OLAP数据库:为数据分析提供强大的支持
    导语:在大数据时代,数据分析成为了企业决策的重要依据。为了高效地处理和分析海量的数据,OLAP数据库应运而生。本文将介绍几种常用的OLAP数据库,为数据分析提供强大的支持。一、SnowflakeSnowflake是一种云原生的OLAP数据库,以其强大的数据处理能力和灵活的架构而闻名。它具有......