python collections的常用工具
程序员文章站
2022-06-19 11:58:39
...
python collections是非常常用的一个模块,里面的一些工具可以帮助我们减少代码,并提高运行速度,如下列出:
第一个是计数用的Counter类,运行起来与collections.defaultdict(int)类似
#计数器,行为类似字典
c = collections.Counter()
for i in 'programming':
c[i] += 1
print(c) # Counter({'r': 2, 'g': 2, 'm': 2, 'p': 1, 'o': 1, 'a': 1, 'i': 1, 'n': 1})
print(c['z']) # 0
第二个是设定字典的值的默认值
#在字典中设置默认的值类型
def_dict = collections.defaultdict(list)
for i in 'abcdefg':
def_dict[i].append(i)
print(def_dict)
# defaultdict(<class 'list'>, {'a': ['a'], 'b': ['b'], 'c': ['c'], 'd': ['d'], 'e': ['e'], 'f': ['f'], 'g': ['g']})
def_dict= collections.defaultdict(lambda :'test')
for i in 'abcdefg':
def_dict[i]
print(def_dict)
#defaultdict(<function <lambda> at 0x0000017578CEF158>, {'a': 'test', 'b': 'test', 'c': 'test', 'd': 'test', 'e': 'test', 'f': 'test', 'g': 'test'})
第三个是有序的字典OrderedDict()
#有顺序的字典
ord_dict = collections.OrderedDict()
for i,j in enumerate('abcdefg'):
ord_dict[j] = i
print(ord_dict)
# OrderedDict([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4), ('f', 5), ('g', 6)])
接下来是用于快速创建仅包含属性值的对象的namedtuple,它的用处与元组类似,都是用来存放不可变内容的
#快速建立一个简单的,仅有属性值构成的类
User = collections.namedtuple('User',['username','password','email','gender','age'])
Chrome = User('Chrome','test','[email protected]','male',27)
print(Chrome.username) # Chrome
print(Chrome.age) # 27
上一篇: Python 常用工具函数