从Apriori中学到的基础知识和编程技巧
1.基础知识
Apriori的目标是寻找频率项集和关联规则,相应的评价指标是支持度和可信度
2.python3中已没有urllib2
urllib2已改为urllib.request,urllib2.HTTPError变为urllib.URLError,其它的基本一致。
在python3下安装votesmart的方法,参考https://www.cnblogs.com/nerd/p/10218703.html
3.list、dict和set
d= {'a': 1, 'b': 2, 'b': '3'} # 花括号,逗号分隔,其中必有冒号 print(type(d)) s={'a', 'b', 'b'} # 花括号,逗号分隔 print(type(s)) l=['a', 'b', 'b'] # 中括号,逗号分隔 print(type(l)) ----------------------------- 结果: <class 'dict'> <class 'set'> <class 'list'>
4、set和frozenset
frozenset是不可更改的,即没有了集合的基本操作,如:add(x),udpate(x) remove(x),discard(x), 与(&),或(|),差(-),异或(∧),代码:
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} print('{0}: {1}'.format('basket', basket)) print('{0}: {1}'.format("'orange' in basket", 'orange' in basket)) print('{0}: {1}'.format("'crabgrass' in basket", 'crabgrass' in basket)) # 下面展示两个集合间的运算. a = set('abracadabra') b = set('alacazam') print('{0}: {1}'.format('a', a)) print('{0}: {1}'.format('b', b)) print('{0}: {1}'.format('a - b', a - b)) print('{0}: {1}'.format('a | b', a | b)) print('{0}: {1}'.format('a & b', a & b)) print('{0}: {1}'.format('a ^ b', a ^ b)) ---------------------------------------------------------- 结果: basket: {'orange', 'pear', 'banana', 'apple'} 'orange' in basket: True 'crabgrass' in basket: False a: {'a', 'd', 'r', 'c', 'b'} b: {'z', 'm', 'l', 'c', 'a'} a - b: {'r', 'b', 'd'} a | b: {'a', 'd', 'r', 'z', 'm', 'l', 'c', 'b'} a & b: {'c', 'a'} a ^ b: {'l', 'd', 'r', 'b', 'z', 'm'}
s.add(x):添加元素x
s.udpate(x):添加元素x,想可以是元素、列表、元组、字典
s.remove(x):将元素从集合s中移除,若没有元素会崩溃
s.discard(x):将元素从集合s中移除,不会崩溃
参考官方文档:https://docs.python.org/zh-cn/3.7/library/stdtypes.html#mapping-types-dict
python2中 字典可以使用s.has_keys(x),但是python3中不存在该函数,需要使用
x in s来表示,即 if not x in s: s[x] = 1,来初始化新的key,对应的值