Advanced Collections

Python CollectionsFree Lesson

Advertisement

Advanced Collections

namedtuple, deque, ChainMap, and collection patterns.

Overview

Master advanced collection types.

namedtuple

from collections import namedtuple

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

# With defaults
Point = namedtuple('Point', ['x', 'y'], defaults=[0, 0])
p = Point(1)
print(p)  # Point(x=1, y=0)

# Replace fields
p2 = p._replace(y=5)
print(p2)  # Point(x=1, y=5)

deque

from collections import deque

# Double-ended queue
dq = deque([1, 2, 3])
dq.append(4)      # Add to right
dq.appendleft(0)  # Add to left
print(dq)  # deque([0, 1, 2, 3, 4])

dq.pop()     # Remove from right
dq.popleft() # Remove from left
print(dq)  # deque([1, 2, 3])

# Rotate
dq.rotate(1)
print(dq)  # deque([3, 1, 2])

# Fixed size
dq = deque(maxlen=3)
dq.extend([1, 2, 3, 4, 5])
print(dq)  # deque([3, 4, 5])

ChainMap

from collections import ChainMap

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

chain = ChainMap(dict1, dict2)
print(chain['a'])  # 1
print(chain['b'])  # 2 (from dict1, first in chain)
print(chain['c'])  # 4

Practice

Implement a priority queue using collections.

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement