2018-03-07
本文总结一下最近在项目中学到的一些东西。
其实在抽象问题上花了很多时间,抽象出来问题其实也很简单:
已知一个时序序列,序列中的每个元素本身就是一个label。
预测序列下一个元素;
取概率最高的元素,如果预测的label与真实的label一致,认为序列正常;否则序列出现异常。
这样问题的描述也就很清楚了。1是一个序列预测多分类问题,2是一个序列异常判断二...
阅读全文
2017-11-12
上课的时候,其中一个task需要用前缀结构来降低空间开销,同时为了满足查找的需要,要用到AC自动机,因此接触了这两个数据结构。
本文只是对这两个知识点的Note,并没有太多原创的东西。
介绍字典树(Trie)是一种前缀结构,每个节点值是一个字符,从根节点到某节点所经过的所有节点值即代表了该节点保存的字符串,因此具有相同前缀的字符串不会重复保存前缀,只会保存一...
阅读全文
2017-10-13
这一章主要介绍的是Python中的装饰器,装饰器有两大特性:
把被装饰的函数替换成其他函数;
装饰器在加载模块时立即执行
即函数装饰器在导入模块时立即执行,而被装饰的函数只在明确调用时运行。
Python不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量,所以这一点必须要小心。
闭包闭包指延伸了作用域的函数,其中包含函数定义体中引用、但是不在定义...
阅读全文
2017-10-07
写这篇文章的起因是在看微信JS接口demo的Python版本时,看到了一种生成随机字符串的方式,于是在V2EX上写了一个讨论:Python生成一段随机字符串的两种写法。这里是对那个讨论的小结。
12345678910111213141516# 方法1s1 = ''.join(random.choice(string.ascii_lette...
阅读全文
2017-09-28
可调用对象:在自定义的类Cls中实现__call__()方法即可直接使用cls()调用。
获取关于函数参数的信息:sig=inspect.signature(func)可以查看函数参数的一些信息,还可以使用sig.bind(**args)绑定参数。
函数可以添加注解,虽然并不会被用到,但是可以增加函数的可读性。
12def func(parm:st...
阅读全文
2017-09-25
1.处理文本文件unicode三明治:bytes->str->bytes,中间的文本处理只涉及到str。
chardet:检测文本编码的模块。
不要依赖系统的默认编码,一定要设置编码。
1234# 使用文本方式打开文本文件open('a.txt', 'r', encoding='utf-8...
阅读全文
2017-09-13
1. 字典只有可散列类型可用作键,可散列类型:str、bytes、数值、frozenset。
通过查找来插入新值的时候优化,使用setdefault函数:my_dict.setdefault(key, []).append(new_value)
查找取值的时候优化,使用defaultdict:my_dict = collections.defaultdict...
阅读全文
2017-09-13
这一章在讲Python中的序列类型,其中关于切片、元组还有+=的谜题值得一读。
1. 序列类型容器序列:list,tuple,collections.deque
扁平序列:str,bytes,bytearray,memoryview,array.array
可变序列:list, bytearray,array.array,collections.d...
阅读全文
2017-08-11
1. 数据类型及操作变量定义
=赋值,但是=前后不能加空格
双引号内字符会扩展,单引号内的是纯文本
12345unset variable # 取消变量declare -i variable # 定义为整数# 这两个都是定义为环境变量decalre -x variableexport variable
数值: 默认的bash程序中只支...
阅读全文
2017-08-11
1. 软件包管理12apt-cache search pkg_name # 查找软件包apt-cache show pgk_name # 显示软件包信息
1234dpkg -i pkg_file # 用.deb安装软件包dpkg --list # 列出已安装的软件包列表dpkg --status pkg_name # 判断软件包是否已安装dpkg --se...
阅读全文