Разработать класс расширение для dict Python

2 000 руб. за проект
07 января 2022, 13:39 • 5 откликов • 46 просмотров
Первый способ доступа: доступ по номеру ключа, ключи должны быть отсортированы (метод sorted)

Пример:

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
  • Должно быть определено исключение для неверно заданных условий
Отзывы
Работа выполнена очень быстро, качественно и адекватно. Рекомендую, хороший специалист.
~ 1 год назад
R50 3a3d7a31606bdae1f0d29e65a945ad67
Фрилансер
Отличный заказчик, четкое ТЗ и своевременная оплата. Рекомендую.
~ 1 год назад