python小技巧
Posted valorchang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python小技巧相关的知识,希望对你有一定的参考价值。
1、print(list(zip(*(iter(range(20)),)*3)))
输出结果:[(0,1,2),(3,4,5),(6,7,8),(9,10,11),(12,13,14),(15,16,17)]
2、 类中用__slots__将成员静态化,可以节省大量内存。
- 装饰器,常见用途如函数计时,亦可用来产生新的函数签名。函数签名会影响传参检查和ide补全,对带不定长参数的函数非常有用。很多库中都会用这种方法来兼容不同版本的API。
- 生成器,对于只需遍历的数据可以节省大量内存。
- *和**参数展开。典型的例子是zip(*list_x)和chain(*list_x),分别相当于转置和concatenate。
- if __name__ == "__main__": 检查是否作为主程序调用,用multiprocessing并行时主程序得用这个框起来。
- enumerate,例如将一个list变成list2index可以用dict([(x, i) for i, x in enumerate(list_x)])
- namedtuple,生成类似于C语言的结构体,同时支持tuple的所有语法。
- defaultdict,做统计时不用初始化的dict,可以用lambda实现嵌套构造defaultdict(lambda : defaultdict(int)),甚至递归字典tree = lambda : defaultdict(tree)
import collections
tree = lambda: collections.defaultdict(tree)
some_dict = tree()
some_dict["colors"]["favourite"] = "yellow"
print(‘\033[91mWARNING\033[0m‘)
print(‘\x1b[91mWARNING\x1b[0m‘)
打印绿色文本print("\033[39;32mText this position stat\n")#[里的第一个数字40-47是八种不同的颜色,其他的没有测试过,这个颜色是覆盖文本的颜色,不是文本的颜色,第二个数字是文本的颜色
以上是关于python小技巧的主要内容,如果未能解决你的问题,请参考以下文章