我想写一个Python 3脚本来管理我的开支,我将要有一个规则过滤器,上面写着“如果描述包含特定字符串,则将其归类为x”,并且这些规则将被读入来自文本文件。
我能想到这样做的唯一方法是对每个事务的描述应用str.find(),如果找到一个,则中断 - 但这是一个O ^ 2解决方案,有没有更好的这样做的方式?
答案 0 :(得分:1)
从描述中删除标点符号,并将split
标记为单词。将说明中的字词设为set
,将类别设为另一个set
。
自sets use dictionaries internally和dictionaries are built on hash-tables起,平均成员资格检查为O(1)。
输入(或更改)交易时 仅,与两个集合相交以查找适用的类别(如果有),并将类别添加到您的交易记录(dict
, namedtuple
,等等。