python读书笔记2000_《流畅的Python》读书笔记一

通过内置的函数(例如 len、iter、str,等等)来使用特殊方法是最好的选择。这些内置函数不仅会调用特殊方法,通常还提供额外的好处,而且对于内置的类来说,它们的速度更快

Python 有一个内置的函数叫 repr,它能把一个对象用字符串的形式表达出来以便辨认,这就是“字符串表示形式”。repr 就是通过 __repr__这个特殊方法来得到一个对象的字符串表示形式的

生成器表达式的语法跟列表推导差不多,只不过把方括号换成圆括号而已。

680203f8864f

python

在元组拆包中使用 *可以代表任意数量的元素,同时也可以放在任何地方,元组还可以嵌套拆包,只要一一对应就行了。

为什么切片区间会忽略最后一个元素:当只有最后一个位置信息时,我们也可以快速看出切片和区间里有几个元素:range(3) 和 my_list[:3] 都返回 3 个元素。当起止位置信息都可见时,我们可以快速计算出切片和区间的长度,用后一个数减去第一个下标(stop - start)即可。可以利用任意一个下标来把序列分割成不重叠的两部分,只要写成 my_list[:x] 和 my_list[x:] 就可以了。

当操作只包含数字的列表,那么 array.array 比 list 更高效

如果在插入新元素的同时还想保持有序序列的顺序,那么需要用到 bisect.insort。bisect.bisect 的作用则是快速查找。

原子不可变类型(str,bytes和数值类型)可以散列,对于元组,只有元组内所有的元素都可以散列的情况下,它才是可散列的

可以通过dict.setdefault()方法来设置默认值,dict.setdefault()方法接收两个参数,第一个参数是健的名称,第二个参数是默认值。假如字典中不存在给定的键,则返回参数中提供的默认值;反之,则返回字典中保存的值。

types 模块中引入了一个封装类名叫MappingProxyType。如果给这个类一个映射,它会返回一个只读的映射视图。虽然是个只读视图,但是它是动态的。这意味着如果对原映射做出了改动,我们通过这个视图可以观察到,但是无法通过这个视图对原映射做出修改。

不要对字典迭代的同时进行修改,因为当往字典里添加新的键时,字典可能会进行扩容,所以如果在迭代的时候修改可能会跳过某些键,如果要进行这个操作,需要先对字典进行迭代,得到先要更新的内容,在迭代结束以后进行修改。

字符的标识,即码位,是 0~1 114 111 的数字(十进制),在Unicode 标准中以 4~6 个十六进制数字表示,而且加前缀“U+”

字符的具体表述取决于所用的编码。编码是在码位和字节序列之间转换时使用的算法。

把字节序列变成人类可读的文本字符串就是解码,而把字符串变成用于存储或传输的字节序列就是编码。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值