来源:未闻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线图表

排序算法: 汇总 | 冒泡排序 | 选择排序 | 快速排序 | 归并排序 | 堆排序 | 插入排序 | 希尔排序 | 计数排序 | 桶排序 | 基数排序

你的代码是如何被炫技毁掉的相关推荐

  1. java加减乘除运算代码_从“位运算”炫技到“操作符”,再到逐步理解“群论”...

    由位运算到操作符,再到逐步理解群论 Step by Step for Understanding from Bitwise to Operators, then Group Theory 是否曾经会有 ...

  2. 黑客少年手机编 10 万行代码,恶意篡改 App 只为了 “炫技”?

    作者 | 伍杏玲 出品 | 极客宝宝(geek_baby) 正所谓"善与恶是同一块钱币的正反两面",对于技术来说,如何使用技术的这把"双刃刀"便是技术人的&qu ...

  3. python条件语句代码例子_Python 炫技操作:条件语句的七种写法

    原标题:Python 炫技操作:条件语句的七种写法 作者 | 写代码的明哥 责编 | 郭芮 有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同. Python 语言里有许多(而且是越来 ...

  4. 阿里架构师的炫技与克制:代码的两种味道与态度

    本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等 虽然你代码可能已经写得不少了,但要真正提高代码水平,其实还需要多读代码.就像写作,写得再多,不多读书,思维和认知水平其实是很难 ...

  5. 探索编程的极限:挑战炫技代码

    程序员常常被视为具有超强技术能力的人才,而他们手中的代码也往往充满了令普通人惊叹的炫技操作.作为程序员的我,将和大家分享一些炫技的代码写法 一.编程语言介绍 本人主攻Java.下面我将介绍一下Java ...

  6. 程序员的你,有哪些炫技的代码写法?

    很高兴参加这次分享活动,以下是我对程序员炫技代码写法的一些见解和经验分享: 一.代码美感-灵动转换 美感是良好的编码风格的核心,代码美感平衡了可读性和编写效率,让我们的代码具有更好的可理解和可维护性. ...

  7. 学了8年Python,被这8行炫技代码惊呆了!

    我们今天来看一段炫技代码.它可以把任何能接收两个参数的函数定义成一个特殊的运算符. 例如,我们知道Python里面的range函数,最少可以接收1个参数,最多能够接收3个参数.当只有两个参数的时候,格 ...

  8. 比较炫技的Java代码写法

    作为一名程序员,我们经常会遇到需要写出高效.简洁.易读的代码的情况.在这里,我分享一些我认为比较炫技的Java代码写法,包括一些算法示例,希望能够大家带来一些启发. Lambda表达式 Lambda表 ...

  9. 分享Java代码中一些常见的炫技代码写法,请各位点赞、收藏

    以下是一些常见的例子.请记住,这些写法通常是为了展示技术的巧妙和灵活性,但并不一定适用于所有情况.在实际项目中,可读性和可维护性应始终是首要考虑因素. 流式操作(Stream API): List&l ...

最新文章

  1. [android] 手机卫士黑名单功能(列表展示)
  2. C# WinForm程序App.Config数据库连接配置文件的使用过程
  3. 4G通信模块在ARM平台下的应用
  4. 【转】Oracle回收站(recyclebin)
  5. Spring依赖注入技术的发展
  6. C++自动类型推导 : auto 与 decltype 用法
  7. Prim最小生成树算法
  8. 视频超分,Transformer再下一城之VSR-Transformer
  9. activeperl安装不成功_手把手教你:Windows系统上安装GPU深度学习环境
  10. java io类filereader,39. Java IO: FileReader
  11. 02 linux常用命令
  12. mfp服务器控制中心,固网1008MFP驱动
  13. boost asio linux原理,Linux C++ Boost asio ACE 视频教程
  14. 有没有能PC远程控制安卓手机的App?AirDroid实现PC远程控制安卓
  15. Android关键字persistent
  16. n9005zhuenb6 Android 5,三星Galaxy Note3(港版N9005)刷机与ROOT教程【详细介绍】
  17. python 省略号 三个点...的含义
  18. 小白积累本:stata矩阵计算初级操作的汇总(更新ing)
  19. 【学术相关】博士开始内卷了吗?
  20. MySQL5.7修改密码问题解决方案

热门文章

  1. java 墨卡托转经纬度,坐标转换:墨卡托 经纬度
  2. 最简单的用js模拟计算器进行计算(初级)
  3. 卤水中除硼的工艺,盐湖提锂提取硼酸
  4. SAP 寄售库龄分析报表
  5. ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
  6. 钉钉企业内部H5应用IOS点击下载pdf附件后乱码问题
  7. NavMenu 导航菜单导航样式修改
  8. 高效管理笔记,选择IHome在线笔记
  9. opencv学习笔记七:绘图和注释
  10. python颜色参数palette_python数据可视化seaborn(一)—— 整体样式与调色板