python源码剖析 读书笔记

1.多个str合并时不要用+号,应该用list的join函数, 详见:http://tieba.baidu.com/p/2599027753

在这个实验中,表明超过170个str合并时 join函数更占优


2,list 的内部实现类似C++ STL中的vector, 当发生重新分配内存或者在list 首部插入数据时, list的效率最低

如果常常要在序列的两端增删元素,请使用deque这个数据结构,它是线程安全的


3.dict 和 set 的实现类似,都基于散列表(set可以想象成 键与值 一样的散列表) 由于python内部大量使用dict 来对应 变量名和值,所以对键值为 str 类型的 key-value查找有专门的优化(比较方式和省去了通用的错误处理 )


4.对于有些函数其参数直接传一个生成器进去就可以了,不必要转成list,比如

somemethod(a for a in as),不必somemethod([a for a in as])

加了方括号反而多此一举


再转一篇分析数据结构时间复杂度的文章:

http://www.qy7788.com.cn/shiyongxinxi/shiyongxinxi203.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱知菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值