02-数组

数组实现的代码如下所示:

class Array(object):
    """
一个简单的数组支持插入、删除、按照下标访问。
数组中的数据是任意类型的
    """
    def __init__(self,capacity:int = 10):
        self._data = []
        self._capacity = capacity

    def __len__(self):
        return len(self._data)

    def __iter__(self):
        for item in self._data:
            yield item
    def __repr__(self):
        """
        打印时输出我们想要的信息
        :return: 返回数据
        """
        return str(self._data)

    def find(self,index:int)->object:
        """
        根据索引,找到参数并且返回参数
        :param index: 查找参数的索引你下标
        :return: 返回成功的参数,否则返回False
        """
        if (index < 0 or index >= len(self)):
            return -1
        return self._data[index]

    def insert(self,index: int,value: int)->bool:
        """
        插入数据
        :param index:插入的下标
        :param value: 插入的数据
        :return: 成功True,失败False
        """
        if (index < 0 or len(self) >= self._capacity):
            return False
        else:
            self._data.insert(index,value)
            return True

    def delete(self,index: int) -> bool:
        """
        根据索引删除元素
        :param index: 索引的小标
        :return: 删除成功返回True,否则False
        """
        if (index < 0 or index > len(self)):
            return False
        else:
            self._data.pop(index)
            return True


if __name__ == '__main__':
    array = Array(5)
    array.insert(0, 3)
    array.insert(0, 4)
    array.insert(1, 5)
    array.insert(3, 9)
    array.insert(3, 10)
    assert array.insert(0, 100) is False
    print(array)
    assert len(array) == 5
    assert array.find(1) == 5
    assert array.delete(4) is True
    print(array)
    array.insert(3, 7)
    print(array)

运行结果为:

posted @ 2020-05-05 18:10  一知.半解  阅读(146)  评论(0)    收藏  举报