python内置模块:collections-成都快上网建站

python内置模块:collections

设置坐标:namedtuple

10年积累的网站制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有泾县免费网站建设让你可以放心的选择与我们合作。

格式:

        变量名 = namedtuple(任意名,list)

from collections import namedtuple

Point = namedtuple('point', ['x', 'y', 'z'])
p = Point(1,2,0)
print(p.x)
print(p.y, p.z)

print(isinstance(p, tuple))

运行结果:

1
2 0
True

双向队列:deque

https://docs.python.org/2.7/library/collections.html?highlight=deque#collections.deque

from collections import deque
q = deque(['a', 'b', 'c'])
q.append('x')       #尾插
q.appendleft('y')   #头插
print(q)

运行结果:

deque(['y', 'a', 'b', 'c', 'x'])

默认字典:defaultdict, 如果没有该key值,默认输出指定值。

from collections import defaultdict
dd = defaultdict(lambda: 'N/A')
dd['key1'] = 'abc'
print (dd['key1']) # key1存在
print (dd['key2'])

运行结果:

abc
N/A

顺序排列dist: OrderedDict

from collections import OrderedDict
d = dict([('a', 1), ('b', 2), ('c', 3)])
n = {'a':1, 'b':2, 'c':3}
print (d) # dict的Key是无序的
print (n) # dict的Key是无序的

od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print (od)# OrderedDict的Key是有序的

运行结果:

{'c': 3, 'b': 2, 'a': 1}
{'c': 3, 'b': 2, 'a': 1}
OrderedDict([('a', 1), ('b', 2), ('c', 3)])

计算数目:Counter

from collections import Counter

c = Counter()
for ch in 'programming':
    c[ch] = c[ch] + 1
    print(c)
print(c)

运行结果:

Counter({'p': 1})
Counter({'r': 1, 'p': 1})
Counter({'r': 1, 'o': 1, 'p': 1})
Counter({'r': 1, 'o': 1, 'p': 1, 'g': 1})
Counter({'r': 2, 'o': 1, 'p': 1, 'g': 1})
Counter({'r': 2, 'o': 1, 'p': 1, 'g': 1, 'a': 1})
Counter({'r': 2, 'o': 1, 'p': 1, 'g': 1, 'a': 1, 'm': 1})
Counter({'r': 2, 'm': 2, 'o': 1, 'p': 1, 'g': 1, 'a': 1})
Counter({'r': 2, 'm': 2, 'o': 1, 'i': 1, 'p': 1, 'g': 1, 'a': 1})
Counter({'r': 2, 'm': 2, 'o': 1, 'i': 1, 'n': 1, 'p': 1, 'g': 1, 'a': 1})
Counter({'r': 2, 'g': 2, 'm': 2, 'o': 1, 'i': 1, 'n': 1, 'p': 1, 'a': 1})
Counter({'r': 2, 'g': 2, 'm': 2, 'o': 1, 'i': 1, 'n': 1, 'p': 1, 'a': 1})


本文标题:python内置模块:collections
标题链接:http://kswjz.com/article/goshej.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流