排序
Python defaultdict:访问缺失键为何新增记录
defaultdict能在缺失键被索引访问时创建默认值。于是一个看似读取的表达式,也可能改变容器内容;如果只想查询是否存在,需要选对访问方式。
Python bisect查找:插入位置不等于命中
在有序列表中找一个数,bisect_left返回适合插入的位置,而不是“找到或找不到”的直接答案。使用结果前还要检查位置是否越界,以及当前位置的值是否相等。
Python groupby:连续分组与排序
itertools.groupby按照连续相同的键分组,并不会自动把整份数据中同键的记录聚到一起。看到A、B、A分成三组,通常是输入顺序与预期用途没有对齐。
Python partial固定了参数,为什么调用时仍能改掉
partial可以提前填入函数的一部分参数,得到调用更简洁的新对象。但预填的关键字参数还能在实际调用时被覆盖,因此它适合便利封装,不适合作为不可更改的限制。
Python removeprefix与lstrip的区别
想把名称前面的固定标记去掉时,lstrip接收的是字符集合,removeprefix接收的才是完整前缀。把两者混用,可能把后面本来需要保留的字母也删掉。
Python JSON导出:拒绝NaN与Infinity
Python的json模块默认可以输出NaN或Infinity,但这些并不是标准JSON数值。文件在本机能生成,不代表其他语言或严格接口一定能接受。


