You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.2 KiB
52 lines
1.2 KiB
""" |
|
>>> from django.utils.datastructures import SortedDict |
|
|
|
>>> d = SortedDict() |
|
>>> d[7] = 'seven' |
|
>>> d[1] = 'one' |
|
>>> d[9] = 'nine' |
|
>>> d.keys() |
|
[7, 1, 9] |
|
>>> d.values() |
|
['seven', 'one', 'nine'] |
|
>>> d.items() |
|
[(7, 'seven'), (1, 'one'), (9, 'nine')] |
|
|
|
# Overwriting an item keeps it's place. |
|
>>> d[1] = 'ONE' |
|
>>> d.values() |
|
['seven', 'ONE', 'nine'] |
|
|
|
# New items go to the end. |
|
>>> d[0] = 'nil' |
|
>>> d.keys() |
|
[7, 1, 9, 0] |
|
|
|
# Deleting an item, then inserting the same key again will place it at the end. |
|
>>> del d[7] |
|
>>> d.keys() |
|
[1, 9, 0] |
|
>>> d[7] = 'lucky number 7' |
|
>>> d.keys() |
|
[1, 9, 0, 7] |
|
|
|
# Changing the keys won't do anything, it's only a copy of the keys dict. |
|
>>> k = d.keys() |
|
>>> k.remove(9) |
|
>>> d.keys() |
|
[1, 9, 0, 7] |
|
|
|
# Initialising a SortedDict with two keys will just take the first one. A real |
|
# dict will actually take the second value so we will too, but we'll keep the |
|
# ordering from the first key found. |
|
>>> tuples = ((2, 'two'), (1, 'one'), (2, 'second-two')) |
|
>>> d = SortedDict(tuples) |
|
>>> d.keys() |
|
[2, 1] |
|
>>> real_dict = dict(tuples) |
|
>>> sorted(real_dict.values()) |
|
['one', 'second-two'] |
|
>>> d.values() # Here the order of SortedDict values *is* what we are testing |
|
['second-two', 'one'] |
|
""" |
|
|
|
|