1. 程式人生 > >Python模組之collections

Python模組之collections

Python擁有一些內建的資料型別,比如str, int, list, tuple, dict等, collections模組在這些內建資料型別的基礎上,提供了幾個額外的資料型別:

  • namedtuple(): 生成可以使用名字來訪問元素內容的tuple子類
  • deque: 雙端佇列,可以快速的從另外一側追加和推出物件
  • Counter: 計數器,主要用來計數
  • OrderedDict: 有序字典
  • defaultdict: 帶有預設值的字典

1.OrderedDict

在Python中,dict這個資料結構由於hash的特性,是無序的,這在有的時候會給我們帶來一些麻煩, 幸運的是,collections模組為我們提供了OrderedDict,當你要獲得一個有序的字典物件時,用它就對了。
栗子:

# -*- coding: utf-8 -*-
from collections import OrderedDict

items = (
    ('A', 1),
    ('B', 2),
    ('C', 3)
)

regular_dict = dict(items)
ordered_dict = OrderedDict(items)

print 'Regular Dict:'
for k, v in regular_dict.items():
    print k, v

print 'Ordered Dict:'
for k, v in ordered_dict.items():
    print k, v


# Result:
Regular Dict:
A 1
C 3
B 2
Ordered Dict:
A 1
B 2
C 3