Python代码技巧

本文列举了若干Python编程中的实用技巧,包括计算时间复杂度和空间复杂度的方法、高效交换两个数、字符串合并策略、使用assert设置断言、列表生成式以及如何优化条件判断和参数传递。这些技巧有助于提升代码效率和可读性。
摘要由CSDN通过智能技术生成

Python编程技巧

写在前面,在不断学习的过程中,不断吸收一些高效的代码,我会在文末引用,但不保证这些引用是原文链接,很期待大家和我一起维护,文末评论即可,我会测试然后更新在文中,也可以共同GitHub贡献。你可以在浏览器中利用ctrl+F来检索对应的技巧。

1、计算你的时间复杂度和空间复杂度

1、减少冗余数据   
如用上三角或下三角的方式去保存一个大的对称矩阵。在0元素占大多数的矩阵里使用稀疏矩阵表示。
2、循环之外能做的事不要放在循环内
3、对于and,应该把满足条件少的放在前面,对于or,把满足条件多的放在前面
4、while 1 比 while True 更快
5、使用**而不是pow

2、交换两个数

# 交换堆顶和堆尾元素
def swap(nums,length):
    nums[1] , nums[length] =  nums[length],nums[1] 
    # 由于传入的是地址,不是重新申请局部空间,可以不用return 
    return nums

3、合并字符串

# 使用join合并迭代器中取出的字符
s = ''.join(a)
# 选择合适的合并
s1, s2 = 'ax', 'bx'
# 最慢
'abc%s%s' % (s1, s2)
# 中间
'abc{0}{1}'.format(s1, s2)
# 最快
'abc' + s1 + s2  

3、联级比较

# x < y < z  比 x < y and y < z 快一点

4、设置断言

# 必须保证a和b的长度相等,否则直接结束程序
assert len(a) == len(b)

5、列表生成 一行结束

new_list = [fn(item) for item in a_list if condition(item)]

6、三元操作符进行条件赋值

[on_true] if [expression] else [on_false]

7、判断元素是否在特殊集合中

if m in [1,3,5,7]:
if m==1 or m==3 or m==5 or m==7:

8、函数传入较多参数

*可以使用运算符将​​可迭代对象解压缩为函数调用中的参数
fruits = ['lemon', 'pear', 'watermelon', 'tomato']
** 运算符允许我们采取键值对的字典,并把它解压到函数调用中的关键字参数
date_info = {'year': "2020", 'month': "01", 'day': "01"}

附reference

1、https://fantianzuo.blog.csdn.net/article/details/126720354
2、https://cloud.tencent.com/developer/article/1361631
3、https://zhuanlan.zhihu.com/p/45650331
4、link4

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值