利用字典简化你的Python代码,原来还有这种技巧

2021-09-01 12:20:45 浏览数 (1)

前言

最近在研究 matplotlib 的最佳学习方式,遇到一个常见又好像无法避免的问题。

任务是做如下报告页面:

  • 其中的文字也是用 matplotlib 输出

其实用 matplotlib 输出文字到画面上也不费劲,核心代码如下:

但是,上面连续调用 axes.text 这个方法,并且这个方法参数挺多的,很明显代码中出现了大量重复的参数设置。

有没有什么方式既可以简化代码,又可以灵活设置参数?

今天我们就来探讨最基础的一种解决方式


字典就是最好的参数仓库

字典的结构其实与函数的参数有很多相似之处:

  • 都是 key value 键值对
  • key 相当于参数名字,value 相当于参数的值

因此,python 特意为此做了字典解包参数的语法:

以前我们就学习过,这里不再展开

因此,我们可以把默认设置放进字典,每次调用时,解包进去:

  • 这里为了避免把参数名字写成字符串,特别用了 dict 函数,他更加贴合方法参数的调用习惯

但是,有时候需要覆盖默认的设置,这可以做到吗?


字典合并

总是有许多文章告诉你很多花式合并字典的方式,但是你却很少知道哪里需要用到。

现在,就是使用的最佳时机。

假如我们需要覆盖原有的设置,只需要合并字典即可:

  • 行18、21:利用 dict(旧字典,其他参数) ,即可重新构造新的字典,并且后面设置的 键值对 能够覆盖第一个参数的字典

不管你用什么方式合并字典,需要注意的是,不要修改了原有的字典

此时你可能就理解,为什么 python 还需要新增字典合并的新语法,就是因为原有的字典合并是比较啰嗦。

如果你使用 python 3.9 ,那么你可以这么写:

  • 字典1 | 字典2 ,即可合并

你学会了没有?

我必须告诉你,这种方式并不是最优的方式。

下一次再教你如何使用 functool 模块来做到今天的效果(代码更加直观方便),并且自己做一个比他更好的工具函数

记得点赞,转发!谢谢支持!

0 人点赞