python标准库(可在算法比赛使用的库)——collections库

1.deque:双向队列,可以从两端添加或删除元素

from collections import deque
d = deque([1, 2, 3])
d.append(4)
d.appendleft(0)
print(d)  # deque([0, 1, 2, 3, 4])

deque.rotate()可以将双向队列旋转n步

from collections import deque
d = deque([1, 2, 3])
d.rotate(1)
print(d)  # deque([3, 1, 2])

deque.extendleft():在双向队列的左侧添加多个元素,元素顺序和输入的顺序相反

from collections import deque
d = deque([1, 2, 3])
d.extendleft([4, 5])
print(d)  # deque([5, 4, 1, 2, 3])

deque.remove(): 从双向队列中删除第一个找到的值。

from collections import deque
d = deque([1, 2, 3, 1])
d.remove(1)
print(d)  # deque([2, 3, 1])

deque.clear(): 删除双向队列中的所有元素。

from collections import deque
d = deque([1, 2, 3])
d.clear()
print(d)  # deque([])

deque.count(): 与普通列表的count()方法类似,返回指定元素在双向队列中出现的次数。

from collections import deque
d = deque([1, 2, 3, 1])
print(d.count(1))  # 2

2.命名元组,用于创建具有名称的元组类型

from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x)  # 1
print(p.y)  # 2

namedtuple._replace(): 创建一个新的命名元组,用新值替换指定字段。

Point = namedtuple('Point', ['x', 'y'])
p1 = Point(1, 2)
p2 = p1._replace(y=3)
print(p1)  # Point(x=1, y=2)
print(p2)  # Point(x=1, y=3)

3.Counter.elements(): 获取计数器中所有计数大于零的元素,返回一个迭代器。

from collections import Counter
c = Counter(['a', 'b', 'a', 'c', 'b', 'a'])
for elem in c.elements():
    print(elem, end=' ')  # a a a b b c

Counter.most_common(): 返回计数器中出现次数最多的元素列表,按计数值从大到小排序。

from collections import Counter
c = Counter(['a', 'b', 'a', 'c', 'b', 'a'])
print(c.most_common())  # [('a', 3), ('b', 2), ('c', 1)]

4.UserString

UserString.center(): 与普通字符串的center()方法类似,返回一个指定宽度、以当前字符串为中心的新字符串。

from collections import UserString
s = UserString('hello')
print(s.center(10))  #   hello  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值