刷新认知 这六种让 Python 程序变慢的坏习惯我一直在用(1)

较慢的示例

在不好的例子中,我们导入了 math 模块,并使用 math.sqrt() 来访问该函数。当然,它没有任何问题,但如果我们可以导入 sqrt() 函数,性能会更好。

更快的例子

2.避免使用点/点链

使用 dot 非常直观。在 Python 中访问对象的属性或函数。大多数时候,没有问题。但是,如果我们可以避免使用点甚至链接点,性能实际上会更好。

下面的示例显示将数字附加到列表中,然后将其删除。

较慢的示例

更快的例子

如果你不相信这实际上做同样的事情,我们可以验证它。

我可以预料到许多 Python 开发人员会跳出来说这个例子中的技术有点荒谬。事实上,即使是我自己,我也很少像上面那样写代码。然而,很高兴知道我们可以这样编程,甚至可以让它更快。

如果我们想附加到一个列表并从中删除数百万次的项目,我们可能应该考虑使用这个技巧。这就是为什么我们需要平衡代码的性能和可读性。

3.不要使用 + 连接字符串

字符串在 Python 中是不可变的。因此,当我们使用"+"将多个字符串连接成一个长字符串时,每个子字符串都是单独操作的。

较慢的示例

具体来说,对于每个子字符串,它需要请求一个内存地址,然后将它与该内存地址中的原始字符串连接起来,这成为一种开销。

更快的例子

但是,当我们使用 join() 函数时,该函数事先知道所有子字符串,并且内存地址分配的长度适合最终连接的字符串。因此,没有为每个子串分配内存的开销。

强烈建议尽可能使用 join() 函数。但是,有时我们可能只想连接两个字符串。或者,只是为了方便起见,我们想使用“+”。在这些情况下,使用“+”号会带来更好的可读性和更少的代码长度。

4.不要使用临时变量进行价值交换

许多算法需要两个变量的值交换。在大多数其他编程语言中,这通常是通过引入一个临时变量来完成的,如下所示。

较慢的示例

更快的例子

但是,在 Python 中,我们不必使用 temp 变量。Python 具有内置语法来实现此值交换,如下所示。

5.使用 If-Condition 短路

"短路"评估存在于许多编程语言中,Python 也是如此。基本上,它指的是某些布尔运算符的行为,其中仅当第一个参数不足以确定整个表达式的值时才执行或评估第二个参数。

让我们在一个例子中演示这一点。假设我们有一个列表如下。

my_dict = [

{

‘name’: ‘Alice’,

‘age’: 28

},

{

‘name’: ‘Bob’,

‘age’: 23

},

{

‘name’: ‘Chris’,

‘age’: 33

},

{

‘name’: ‘Chelsea’,

‘age’: 2

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值