你的代码是如何被炫技毁掉的
来源:未闻Code
你的代码是如何被炫技毁掉的?
假设有这样一个例子:
一个函数接收两个参数,第一个参数为一个字典,第二个参数为一个列表,我们要把列表中的每一个元素去查字典,如果能够查询到,那么就获取值,如果不能查询到,就跳过。
例如:
输入:{'a': 1, 'b': 2, 'c': 3}
和['a', 'd', 'c']
,那么打印:
a=1
c=3
我们可能会这样写代码:
def referer_dict(target, keys):for k in keys:if k in target:print(f'{k}={target[k]}')
那么有没有可能把判断k
是否在 target
这个操作去掉呢?也可以:
def referer_dict(target, keys):for k in keys:values = target.get(k, None)values is None or print(f'{k}={target[k]}')
但这种写法实际上并没有节省代码行数,不如这样改:
def referer_dict(target, keys):for k in keys:k not in target or print(f'{k}={target[k]}')
接下来还可以继续优化成一行代码:
def referer_dict(target, keys):[print(f'{k}={target[k]}') for k in keys if k in target]
停。
再这样魔改下去这个函数都可以去掉。总共只需要1行代码。但是这样炫技并不可取。代码可读性和可维护性比炫技重要一万倍。
第四种写法,纯粹就是为了凑出这个打印结果而强行使用了列表推导式,毫无可读性,别人接手这个代码也难以维护。
保持 Python 的自文档性,优秀的 Python 代码,本身就是最好的文档,连注释都不需要就能让人理解。
-------- End --------
精选资料
回复关键词,获取对应的资料:
关键词 | 资料名称 |
---|---|
600 | 《Python知识手册》 |
md | 《Markdown速查表》 |
time | 《Python时间使用指南》 |
str | 《Python字符串速查表》 |
pip | 《Python:Pip速查表》 |
style | 《Pandas表格样式配置指南》 |
mat | 《Matplotlib入门100个案例》 |
px | 《Plotly Express可视化指南》 |
精选视频
可视化: Plotly Express
财经: Plotly在投资领域的应用 | 绘制K线图表
排序算法: 汇总 | 冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序 | 基数排序
你的代码是如何被炫技毁掉的相关推荐
- java加减乘除运算代码_从“位运算”炫技到“操作符”,再到逐步理解“群论”...
由位运算到操作符,再到逐步理解群论 Step by Step for Understanding from Bitwise to Operators, then Group Theory 是否曾经会有 ...
- 黑客少年手机编 10 万行代码,恶意篡改 App 只为了 “炫技”?
作者 | 伍杏玲 出品 | 极客宝宝(geek_baby) 正所谓"善与恶是同一块钱币的正反两面",对于技术来说,如何使用技术的这把"双刃刀"便是技术人的&qu ...
- python条件语句代码例子_Python 炫技操作:条件语句的七种写法
原标题:Python 炫技操作:条件语句的七种写法 作者 | 写代码的明哥 责编 | 郭芮 有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同. Python 语言里有许多(而且是越来 ...
- 阿里架构师的炫技与克制:代码的两种味道与态度
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等 虽然你代码可能已经写得不少了,但要真正提高代码水平,其实还需要多读代码.就像写作,写得再多,不多读书,思维和认知水平其实是很难 ...
- 探索编程的极限:挑战炫技代码
程序员常常被视为具有超强技术能力的人才,而他们手中的代码也往往充满了令普通人惊叹的炫技操作.作为程序员的我,将和大家分享一些炫技的代码写法 一.编程语言介绍 本人主攻Java.下面我将介绍一下Java ...
- 程序员的你,有哪些炫技的代码写法?
很高兴参加这次分享活动,以下是我对程序员炫技代码写法的一些见解和经验分享: 一.代码美感-灵动转换 美感是良好的编码风格的核心,代码美感平衡了可读性和编写效率,让我们的代码具有更好的可理解和可维护性. ...
- 学了8年Python,被这8行炫技代码惊呆了!
我们今天来看一段炫技代码.它可以把任何能接收两个参数的函数定义成一个特殊的运算符. 例如,我们知道Python里面的range函数,最少可以接收1个参数,最多能够接收3个参数.当只有两个参数的时候,格 ...
- 比较炫技的Java代码写法
作为一名程序员,我们经常会遇到需要写出高效.简洁.易读的代码的情况.在这里,我分享一些我认为比较炫技的Java代码写法,包括一些算法示例,希望能够大家带来一些启发. Lambda表达式 Lambda表 ...
- 分享Java代码中一些常见的炫技代码写法,请各位点赞、收藏
以下是一些常见的例子.请记住,这些写法通常是为了展示技术的巧妙和灵活性,但并不一定适用于所有情况.在实际项目中,可读性和可维护性应始终是首要考虑因素. 流式操作(Stream API): List&l ...
最新文章
- [android] 手机卫士黑名单功能(列表展示)
- C# WinForm程序App.Config数据库连接配置文件的使用过程
- 4G通信模块在ARM平台下的应用
- 【转】Oracle回收站(recyclebin)
- Spring依赖注入技术的发展
- C++自动类型推导 : auto 与 decltype 用法
- Prim最小生成树算法
- 视频超分,Transformer再下一城之VSR-Transformer
- activeperl安装不成功_手把手教你:Windows系统上安装GPU深度学习环境
- java io类filereader,39. Java IO: FileReader
- 02 linux常用命令
- mfp服务器控制中心,固网1008MFP驱动
- boost asio linux原理,Linux C++ Boost asio ACE 视频教程
- 有没有能PC远程控制安卓手机的App?AirDroid实现PC远程控制安卓
- Android关键字persistent
- n9005zhuenb6 Android 5,三星Galaxy Note3(港版N9005)刷机与ROOT教程【详细介绍】
- python 省略号 三个点...的含义
- 小白积累本:stata矩阵计算初级操作的汇总(更新ing)
- 【学术相关】博士开始内卷了吗?
- MySQL5.7修改密码问题解决方案