python collections的常用工具

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','test@qq.com','male',27)

print(Chrome.username) # Chrome
print(Chrome.age) # 27

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值