python cookbook 非常好!
第一章:数据结构和算法
1.1 解压序列赋值给多个变量
例子:
|
|
学到:tuple可以解压;可以多层解压;不想要的变量用_
接受;
1.2 解压可迭代对象赋值给多个变量
可用来分割字符串以及其他多种用途;可以抛弃(用_
或ign
)/接受任意多个元素;*
表达式解压出来的数据,无论是0个还是n个,type都是list。
|
|
还能用这种分割语法去巧妙的实现递归算法:
def sum(items):
head, *tail = items
return head + sum(tail) if tail else head
1.3 保留最后 N 个元素
学到了deque(maxlen)
和for line in file_f:
1.4 查找最大或最小的 N 个元素
learn headq module (For details see python note )
当要查找的元素个数相对比较小的时候,函数 nlargest() 和 nsmallest() 是很合适的。 如果你仅仅想查找唯一的最小或最大(N=1)的元素的话,那么使用 min() 和 max() 函数会更快些。 类似的,如果 N 的大小和集合大小接近的时候,通常先排序这个集合然后再使用切片操作会更快点 ( sorted(items)[:N] 或者是 sorted(items)[-N:] )。 需要在正确场合使用函数 nlargest() 和 nsmallest() 才能发挥它们的优势 (如果 N 快接近集合大小了,那么使用排序操作会更好些)。
第二章:字符串和文本
2.1 使用多个界定符分割字符串
第四章:迭代器与生成器
4.3 使用生成器创建新的迭代模式
例子:
|
|
for和list()都是调用了frange的next。