circuitpython/tests/basics/ordereddict1.py
2023-07-23 12:18:27 -04:00

55 lines
1.0 KiB
Python

try:
from collections import OrderedDict
except ImportError:
print("SKIP")
raise SystemExit
d = OrderedDict([(10, 20), ("b", 100), (1, 2)])
print(len(d))
print(list(d.keys()))
print(list(d.values()))
del d["b"]
print(len(d))
print(list(d.keys()))
print(list(d.values()))
# access remaining elements after deleting
print(d[10], d[1])
# add an element after deleting
d["abc"] = 123
print(len(d))
print(list(d.keys()))
print(list(d.values()))
# pop an element
print(d.popitem())
print(len(d))
print(list(d.keys()))
print(list(d.values()))
# add an element after popping
d["xyz"] = 321
print(len(d))
print(list(d.keys()))
print(list(d.values()))
# pop until empty
print(d.popitem())
print(d.popitem())
try:
d.popitem()
except:
print('empty')
# fromkeys returns the correct type and order
d = dict.fromkeys('abcdefghij')
print(type(d) == dict)
d = OrderedDict.fromkeys('abcdefghij')
print(type(d) == OrderedDict)
print(''.join(d))
# fromkey handles ordering with duplicates
d = OrderedDict.fromkeys('abcdefghijjihgfedcba')
print(''.join(d))