Разработать класс расширение для dict Python
Пример:
val map = SpecialHashMap() map["value1"] = 1 map["value2"] = 2 map["value3"] = 3 map["1"] = 10 map["2"] = 20 map["3"] = 30 map["1, 5"] = 100 map["5, 5"] = 200 map["10, 5"] = 300 print(map.iloc[0]) // >>> 10 print(map.iloc[2]) // >>> 300 print(map.iloc[5]) // >>> 200 print(map.iloc[8]) // >>> 3Второй способ доступа: выборка всех пар ключ:значение по определенному условию.
Пример:
val map = SpecialHashMap() map["value1"] = 1 map["value2"] = 2 map["value3"] = 3 map["1"] = 10 map["2"] = 20 map["3"] = 30 map["(1, 5)"] = 100 map["(5, 5)"] = 200 map["(10, 5)"] = 300 map["(1, 5, 3)"] = 400 map["(5, 5, 4)"] = 500 map["(10, 5, 5)"] = 600 print(map.ploc[">=1"]) // >>> {1=10, 2=20, 3=30} print(map.ploc["<3"]) // >>> {1=10, 2=20} print(map.ploc[">0, >0"]) // >>> {(1, 5)=100, (5, 5)=200, (10, 5)=300} print(map.ploc[">=10, >0"]) // >>> {(10, 5)=300} print(map.ploc["<5, >=5, >=3"]) // >>> {(1, 5, 3)=400}Для второго доступа:
- Для условий используются символы: <. >, = и их комбинации, для не равно используется комбинация <>
- В условии может быть любое количество пробелов
- В условии используются только целые и вещественные числа
- В качестве разделителя могут выступать любые символы, кроме символов условий и чисел
- Ключи должны соответствовать количеству условий, т.е. если в ключе два числа, а в условии три, то такой ключ игнорируется
- Скобки являются необязательными и игнорируются при выборе
- Дополнительные способы должны быть доступны через поля iloc и ploc
- Должно быть определено исключение для неверно заданных условий