namedtuple:可以使用名字访问元素的元组
- namedtuple(tuple_name, [name1, name2])
- tuple_name:元组名
- name1, name2:元组中每个元素的名字
from collections import namedtuple
Card = namedtuple('card', ['花色', '数字'])
c1 = Card('梅花', '8')
print(c1)
print(c1.花色)
print(c1.数字)
card(花色='梅花', 数字='8')
梅花
8
deque:双端队列,可以从两端放入或弹出元素
- append(item):从右边放入元素item
- appendleft(item):从左边放入元素item
- insert(index, item):在index处插入元素item
- pop():从右边弹出元素
- popleft():从左边弹出元素
from collections import deque
dq = deque()
dq.append(1)
dq.append(2)
dq.appendleft(3)
dq.appendleft(4)
dq.insert(2,5)
print(dq)
print(dq.pop())
print(dq.popleft())
deque([4, 3, 5, 1, 2])
2
4
OrderedDict:有序字典
- 用法和字典一样,只不过他的key-value是和定义的时候的顺序一样
from collections import OrderedDict
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
print(od)
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
defaultdict(callable):默认字典,如果key不存在时,可以返回一个默认值
- callable: 可调用的参数
from collections import defaultdict
dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(list)
print(dict1[1])
print(dict2[1])
print(dict3[1])
0
set()
[]
用匿名函数作为参数
d = defaultdict(lambda:'None')
print(d[1])
None
Counter():用来统计元素个数,以字典形式存储
from collections import Counter
s = "abcabcd"
print(Counter(s))
Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
更多其他的用法可参考Counter用法