Как создать пустую строку, используя метод _string_ для вставки разреженных векторных данных - PullRequest
0 голосов
/ 03 мая 2020

У меня есть это назначение, где я хотел бы создать пустую строку, в которой будут храниться редкие векторные данные. Мне нужно проверить, существует ли индекс ключа в разреженном векторе (self.data). Если нет, мне нужно сохранить в пустой строке разреженный вектор и нулевые значения. Я получаю сообщение об ошибке: TypeError: str возвращено не в виде строки (тип NoneType) . Это мой код:

    class SparceVector(object):

def __init__(self, n):
    self.length = n
    self.data = {}

def __str__(self):
    outstr = None or ""
    assert 0 <= key and key < self.length
    try:
        outstr = ((str(key), str(value)) for key,value in self.data.items())
        return  
    except KeyError:
        return 0
    return "The sparce vector is {}".format(outstr)

def __len__(self):
    return self.legth

def __getitem__(self, key):
    assert 0 <= key and key < self.length
    try:
        return self.data[key]
    except KeyError:
        return 0
        return self.data[key]

def __setitem__(self, key, value):
    assert 0 <= key and key < self.length 
    if value != 0:     
        self.data[key] = value

def nonzeros(self):
    return self.data

def __add__(self, other):
    assert self.length == other.length
    merged = SparceVector(self.length)
    c = {key:value for key, value in self.data.items()}
    for key, value in other.data.items():
        try:
            c[key] += value
        except KeyError:
            c[key] = value
    merged.data = c
    merged.nonzeros()
    return merged

def __iter__(self):
    return iter(self.data)

def key(self):
    return self.data.key()

def items(self):
    return self.data.items()

def values(self):
    return self.data.values()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...