Вопрос: Как вернуть строковое представление карты в следующем формате: {k1: v1, k2: v2, ..., kN: vN} ?? В основном, как определить __repr__?Строковое представление карты
ли я: формат = {k1: v1, k2: v2, ..., кН: Vn} strForm = ул (форма) печать (strForm) ??
Раздаточный:
- Карта представляет собой контейнер для хранения коллекции записей данных в которой каждая запись связана с уникальным ключом. Ключевые компоненты должны быть сопоставимы. • Map(): создает новую пустую карту. • length(): Возвращает количество пар ключ/значение на карте. • содержит (ключ): Возвращает логическое значение, указывающее, является ли данный ключ на карте. • setitem (ключ, значение): добавляет новую пару ключ/значение к карте, если на карте нет ключа . Если ключ находится на карте, новое значение заменяет исходное значение, связанное с ключом. • getitem (ключ): возвращает значение, связанное с данным ключом, которое должно существовать. • clear(): Удаляет или опустошает карту, удаляя все пары ключ/значение. • keys(): Возвращает список, содержащий ключи, хранящиеся на карте. • values (): Возвращает список, содержащий значения, хранящиеся на карте. • ToString(): Возвращает строковое представление карты в следующем формате: {k1: v1, k2: v2, ..., кН: Vn}
Мой код (проверено и работает хорошо) :
class Map :
def __init__(self) :
self._key = list()
self._value = list()
def __len__(self, key) :
return len(self._key)
def __contains__(self, key) :
if key in self._key :
return True
else:
return False
def __setitem__(self, key, value) :
if key in self._key :
pos = self._key.index(key)
self._value[pos] = value
else :
self._key.append(key)
self._value.append(value)
def __getitem__(self, key) :
assert key in self._key
keypos = self._key.index(key)
return self._value[keypos]
def clear(self) :
self._key = list()
self._value = list()
return
def keys(self) :
return self._key
def values(self) :
return self._value
def __repr__(self):
ключ должен быть комплектом, а не списком. Наибольшее преимущество карты - быстрый поиск элементов по ключевым словам. – Beri
Вы просто спрашиваете, как определить '__repr__'? – user3467349
Профессор предпочитает использовать список – lindsey