工匠回忆(一)

不久之前看过《python工匠》,腾讯大佬朱磊写的,后来一段时间零零散散也会翻开看看,强烈推荐!!!

1、变量注释

  变量与注释是最接近自然语言的东西,把变量与注释搞好,同样一段代码,却带来两种截然不同的体验

  1.1、变量开辟的必要性

  1.2、变量注意靠近使用

  1.3、注意变量描述性要强、同时注意其长度

  1.4、变量的命名要突出类型

  1.5、注释不是代码的翻译,要传达代码无法传达的信息(eg:这一段为什么要这么写)

  1.6、先写注释,后写代码

  1.7、注释最好不要用于屏蔽代码,已屏蔽的只会增加阅读负担

2、数值字符串

  2.1、字符的分割

   2.2、判断字符串是不是纯数字

   2.3、字符串的拼接

  用timeit比较+连接符的运行时间,我本地相差还是比较大的,书中相差无几

  2.4、布尔类型是整数类型的派生

1 print(int(True))

  基于这个特性,结合聚合函数可以计算一个序列中的偶数的个数

 

3、容器类型

  了解容器的底层实现,是非常重要的,有利于我们编出高效的代码

  1、列表

    列表推导式(不要写过于复杂的条件表达式、条件表达式用于生成全新的集合)

·    1.1、重要的编程思维,按需返回,而非一次性返回,使用生成器可以实现,按需返回可以提高代码的执行效率,节约内存

     1.2、在列表的开头插入元素,其后的元素都要向后移动,其时间复杂度是O(N),相比而言,可以使用队列,队列是一个双向链表,其时间复杂度是O(1)

  2、元组

    无元组推导式,这里引出命名元组(有两种实现方式),要注意区分和数据类的差别

  3、字典

    3.6及其以后都变成有序的,有序字典可用于去重并保持序列中元素顺序保持不变

1 from collections import OrderedDict
2 
3 a = [45, 6, 23, 145, 45, 90, 6]
4 result = OrderedDict.fromkeys(a).keys()
5 print(result)

  4、集合

    集合支持求差集、并集,可以是运算符也可以是方法

  4.1、在集合中查找成员元素,其原理很简单,集合的底层是基于哈希表数据结构的,给出一个元素,计算他的哈希值,然后在哈希表中去寻找

 

  在这一章节,自定义一种字典数据结构,需要继承抽象类中的MutableMapping

 

热门相关:帝少的专属:小甜心,太缠人   夫人你马甲又掉了   无限杀路   无限杀路   学霸女神超给力