补充 collections 模块

# collections 模块
# from collections import namedtuple
# P= namedtuple('Point',["x",'y'])
# p=P(1,2)
# print(p.x)
# print(p.y)
# 队列:先进先出

# deque 双端队列
# from collections import deque
# q = deque(['a','b','c'])
# q.append('x')
# q.appendleft('y')
# print(q)
# print(q.pop())
# print(q.pop()) #从右边依次取值
# print(q.popleft())#依次从左边取值
# print(q.popleft())

# OrderedDict
# from collections import OrderedDict
# d=dict([('a',1),('b',2),('c',3)])
# #d 此刻dict的Key是无序的
# d=OrderedDict([('a',1),('b',2),('c',3)])
# #此刻 d的Keyshi 有序的
# for key in d:
# print(key)

# defaultdict 下面先举例子来展示它的应用可以减少代码

# 有如下列表[11,22,33,44,55,66,77,88,99] 将所有大于66的值保存在
# 字典的第一个Key中,将所有大于66的值保存至第二个Key中。
# 首先我们看一下原来没有 defaultdict 时候的代码
# values = [11,22,33,44,55,66,77,88,99,90]
# my_dict={}
# for value in values:
# if value>66:
# if my_dict['k1']:
# my_dict['k1'].append(value)
# else:
# my_dict['k1']=[value]
# else:
# if my_dict['k2']:
# my_dict['k2'].append(value)
# else:
# my_dict['k2']=[value]
# print(my_dict)
# 应用了 defaultdict 代码明显降低
# from collections import defaultdict
# values = [11,22,33,44,55,66,77,88,99,90]
#
# my_dict=defaultdict(list)
# for value in values:
# if value >66:
# my_dict['k1'].append(value)
# else:
# my_dict['k2'].append(value)
# print(my_dict)

# Counter
# from collections import Counter
# c= Counter('abcdeabcdabcdba')
# print(c)#查看字符串中各个字母中出现的次数Counter({'a': 4, 'b': 4, 'c': 3, 'd': 3, 'e': 1})
posted @ 2017-11-19 19:14  警察学院  阅读(78)  评论(0)    收藏  举报