1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| """Sorted Containers -- Sorted List, Sorted Dict, Sorted Set
|
| Sorted Containers is an Apache2 licensed containers library, written in
| pure-Python, and fast as C-extensions.
|
| Python's standard library is great until you need a sorted collections
| type. Many will attest that you can get really far without one, but the moment
| you **really need** a sorted list, dict, or set, you're faced with a dozen
| different implementations, most using C-extensions without great documentation
| and benchmarking.
|
| In Python, we can do better. And we can do it in pure-Python!
|
| ::
|
| >>> from sortedcontainers import SortedList
| >>> sl = SortedList(['e', 'a', 'c', 'd', 'b'])
| >>> sl
| SortedList(['a', 'b', 'c', 'd', 'e'])
| >>> sl *= 1000000
| >>> sl.count('c')
| 1000000
| >>> sl[-3:]
| ['e', 'e', 'e']
| >>> from sortedcontainers import SortedDict
| >>> sd = SortedDict({'c': 3, 'a': 1, 'b': 2})
| >>> sd
| SortedDict({'a': 1, 'b': 2, 'c': 3})
| >>> sd.popitem(index=-1)
| ('c', 3)
| >>> from sortedcontainers import SortedSet
| >>> ss = SortedSet('abracadabra')
| >>> ss
| SortedSet(['a', 'b', 'c', 'd', 'r'])
| >>> ss.bisect_left('c')
| 2
|
| Sorted Containers takes all of the work out of Python sorted types - making
| your deployment and use of Python easy. There's no need to install a C compiler
| or pre-build and distribute custom extensions. Performance is a feature and
| testing has 100% coverage with unit tests and hours of stress.
|
| :copyright: (c) 2014-2019 by Grant Jenks.
| :license: Apache 2.0, see LICENSE for more details.
|
| """
|
|
| from .sortedlist import SortedList, SortedKeyList, SortedListWithKey
| from .sortedset import SortedSet
| from .sorteddict import (
| SortedDict,
| SortedKeysView,
| SortedItemsView,
| SortedValuesView,
| )
|
| __all__ = [
| 'SortedList',
| 'SortedKeyList',
| 'SortedListWithKey',
| 'SortedDict',
| 'SortedKeysView',
| 'SortedItemsView',
| 'SortedValuesView',
| 'SortedSet',
| ]
|
| __title__ = 'sortedcontainers'
| __version__ = '2.4.0'
| __build__ = 0x020400
| __author__ = 'Grant Jenks'
| __license__ = 'Apache 2.0'
| __copyright__ = '2014-2019, Grant Jenks'
|
|