libb.OrderedSet
- class OrderedSet(iterable=None)[source]
Bases:
MutableSetA set that maintains insertion order using a doubly linked list.
Provides set operations while preserving the order elements were added.
Note
Based on Raymond Hettinger’s recipe from ActiveState.
- Features:
Combines set behavior (unique elements) with list behavior (order preservation)
Supports all standard set operations (union, intersection, difference)
Maintains insertion order for iteration and representation
Example:
>>> s = OrderedSet('abracadaba') >>> t = OrderedSet('simsalabim') >>> (s | t) OrderedSet(['a', 'b', 'r', 'c', 'd', 's', 'i', 'm', 'l']) >>> (s & t) OrderedSet(['a', 'b']) >>> (s - t) OrderedSet(['r', 'c', 'd'])
- __init__(iterable=None)[source]
Initialize an OrderedSet with optional iterable.
Creates an empty ordered set or populates it from an iterable while preserving insertion order and removing duplicates.
- __len__()[source]
Return the number of elements in the set.
- Returns:
Count of unique elements.
- Return type:
- discard(key)[source]
Remove an element from the set if present.
Does not raise an error if element is not found.
- __iter__()[source]
Iterate over elements in insertion order.
- Returns:
Iterator yielding elements in order of addition.
- Return type:
Iterator
- __reversed__()[source]
Iterate over elements in reverse insertion order.
- Returns:
Iterator yielding elements in reverse order.
- Return type:
Iterator