今天给大家分享几个Python里面的骚操作,大家会更加感受到Python编码的强大。
1.用字典映射代替switch case语句大家首先看下面这段用C#编写的switch case代码,代码很好理解,switch函数传入一个参数day,参数的不同对应不同的case语句,那怎么将这段代码用Python里面的字典代替呢?

switch(day){case 0:dayName = "Sunday";break;case 1:dayName = "Monday";break;case 2:dayName = "Tuesday";break;...default:dayName = "Unknown";break;}

我的第一反应是if else条件语句,但是如果用条件语句的话,就体现不出现Python代码的强大了,条件语句是各种语言都通用的一种形式,再想想有没有其他的方法?啊哈,我想到了字典,字典里面的键值对刚好可以映射这个业务功能,具体代码如下

day = 0
switcher = {0:'Sunday',1:'Monday',2:'Tuesday'
}day_name = switcher.get(day,'Unknown')print(day_name)

上面代码中用到一个Python内置函数get,get函数有很好的容错性,第一个参数就是day,第二个刚好对应switch case语句中的‘unknown’但这样写还是用一定的局限性,有点基础的同学都知道,switch case之间可以随便扩展,写很多模块,那么这样一来,再把字典的值当作是一个常量就不合适了,因此,我们可以自定义函数,将函数作为一个参数传入字典中的值位置,具体代码如下

day = 0
def get_sunday():return 'Sunday'def get_MOnday():return 'Monday'def get_Tuesday():return 'Tuesday'def get_default():return 'Unknown'switcher = {0:get_sunday,1:get_MOnday,2:get_Tuesday
}day_name = switcher.get(day,get_default)()
print(day_name)

2.列表推导式叫列表推导式不是说只能推导列表,至于它为什么叫这个,who care,还是通过一个实例来理解比如现在有一个列表,通过遍历列表,然后将每个元素平方后打印结果。

a = [1,2,3,4,5,6,7,8]
b = [i**2 for i in a]
print(b)

现在如果加一个条件,将列表中大于5的元素平方后打印结果,也很方便,直接在后面加一个if 条件判断

a = [1,2,3,4,5,6,7,8]
a1 ={1,2,3,4,5,6,7,8}      #集合推导b = [i**2 for i in a if i>=5]
b1 = {i**2 for i in a if i>=5}print(b)
print(b1)

3.字典推导列表推导式刚才已经说了,不仅仅只有列表可以用列表推导式,那字典如何实现这个功能呢?

students = {'喜小乐':18,'石敢当':20,'横小五':15
}b = {key for key,value in students.items()}
print(b)

通过上面的代码可以看出,首先字典的最外层是{},其次字典有key和value,再用一个内置函数items将字典的键或值提取出来。当然,我们也可以将键和值颠倒一下

students = {'喜小乐':18,'石敢当':20,'横小五':15
}b = {value,key for key,value in students.items()}
print(b)

最后,我们用这个看一下元组的列表推导式

students = {'喜小乐':18,'石敢当':20,'横小五':15
}b1 = (key for key,value in students.items())   #元组推导列表推导式
print(b1)
<generator object <genexpr> at 0x000000000216A750>

运行代码,结果很奇怪,不能将键和值显示出来,而是出现generator,为什么会这样呢?因为元组是不可变的,这个知识点在前面学习过,不知道大家还有没有印象。那怎么将键和值显示出来,具体代码如下:

students = {'喜小乐':18,'石敢当':20,'横小五':15
}
b1 = (key for key,value in students.items())   #元组推导列表推导式
for x in b1:print(x)

总结列表推导式是一种非常简洁的创建列表的方式,很多时候我们需要创建一个满足特定要求的新列表,不得不用for循环创建,而用列表推导式来表达只需要一行代码即可。

python的一些技巧操作,提高编码效率相关推荐

  1. Python常用小技巧,提高刷题效率(适用于蓝桥杯python组)

    1. 掌握python标准库及小技巧 python课程学习到面向对象,就可以刷题参加算法比赛了 对于蓝桥杯不支持第三方库,但学会python标准库,将事半功倍: 2. 常用的列表函数 list1.ap ...

  2. 20个Excel操作技巧,提高你的数据分析效率

    对于数据分析,Excel可以被当做一款入门的软件.在学习R或Python前,事先掌握一定的Excel知识是百利而无一害. EXCEL凭借其功能强大的函数.可视化图表.以及整齐排列的电子表格功能,使你能 ...

  3. python 编程效率_五个Python编程Tips,帮你提高编码效率

    无论你是一位高级的AI工程师还是学生,你都会在工作或学习过程中需要用到 Python.自 1991 年首次发布后,Python 很快就成为了程序员和技术人员最喜欢的语言.作为一种拥有相对简单语法的高级 ...

  4. Python偷懒小技巧-提高10倍工作效率

    说明:增加代码的描述力,可以成倍减少你的LOC,做到简单,并且真切有力 观点:少打字=多思考+少出错,10代码行比50行更能让人明白,以下技巧有助于提高10倍工作效率 1. 交换变量值时避免使用临时变 ...

  5. 提高Python编程的效率技巧你知道哪些?收藏必备系列,阿里表哥推荐!Python高效编程技巧

    Python高效编程技巧 工作中经常要处理各种各样的数据,遇到项目赶进度的时候自己写函数容易浪费时间. Python 中有很多内置函数帮你提高工作效率! 一:在列表,字典中根据条件筛选数据 1.假设有 ...

  6. python列表使用技巧与方法_Python列表的相关操作与方法

    Python列表的相关操作与方法 1.列表 why:int.bool.str存在缺陷 str:存储少量的数据:所有的操作获取的内容都是 str类型,存储的数据类型单一. what: 列表可以承载任意数 ...

  7. 代码片段管理工具_VS代码片段:提高编码效率的最强大工具

    代码片段管理工具 by Sam Williams 通过山姆·威廉姆斯 VS代码片段:提高编码效率的最强大工具 (VS Code snippets: the most powerful tool to ...

  8. Python加速运行技巧

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:机器学习算法那些事 Python 是一种脚本语言,相比 ...

  9. python基础===Python 代码优化常见技巧

    Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...

最新文章

  1. SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
  2. Flutter Exception降到万分之几的秘密
  3. IE6-IE9兼容性问题列表及解决办法_补遗漏之一:button的type默认值改变为submit了。
  4. 深入探讨 java.lang.ref 包--转
  5. Visual Studio 2008 每日提示(二十三)
  6. binary search(二分法)
  7. 邮箱客户端设置 服务器设置,263邮箱客户端设置
  8. 大数据数据库:MPP vs MapReduce
  9. win10打开计算机代码,Win10开不了机错误代码0xc0000428三种解决方法
  10. Flink大数据计算框架
  11. ECharts数据可视化饼状图(环形图-进度半圆形)
  12. 计算机体系结构——名词解释
  13. AVFoundation开发秘籍笔记-03资源和元数据
  14. 代码规范+《数学之美》读后感
  15. RTSP服务器:RTP传输AAC流
  16. 安装Neo4j图型数据库
  17. 操作系统先进先出置换算法(FIFO)实现
  18. wps表单小程序 服务器错误,微信小程序WPS表单怎么在钉钉使用
  19. 操作系统---栈区与堆区 转自:https://blog.csdn.net/amcp9/article/details/79597481
  20. Swift5.0 用正则表达式检测文本中的网页链接

热门文章

  1. Image.Save 方法
  2. 实验四 负反馈放大电路
  3. kafka多线程消费
  4. 发送消息(SendMessage)常识普及
  5. Java-(二)微信小程序授权获取用户信息和手机号码
  6. 三菱PLC GXWORKS编程之1新建
  7. 深入理解浏览器兼容性模式
  8. 【Reinforcement Learning】蒙特卡洛算法
  9. utf-8的中文是一个汉字占三个字节长度吗?
  10. 腾讯地图仿微信发送位置功能