weixin_65228302 2023-04-28 00:23 采纳率: 28.6%
浏览 15
已结题

谁能帮我修改一下啊,老是报错,我也不会改

谁能帮我修改一下啊

class SqList:  # 顺序表
    def __init__(self):  # 构建空表
        self.elem = []
        self.size = 0

    def listAppend(self, item):  # 插入元素item在表尾
        self.elem.append(item)

    def listInsert(self, index, i):  # 在index之前插入元素i且递增
        if self.elem[index] > i:
            while self.elem[index] > i:
                index -= 1
            self.elem.insert(index + 1, i)

        elif self.elem[index] < i:
            while self.elem[index] < i:
                index += 1
            self.elem.insert(index, i)
        else:
            print("表不能有相同元素")

        self.elem.insert(index - 1, i)

    def listDelelte(self, index):  # 删除第index元素
        del self.elem[index - 1]

    def dellast(self):  # 删除最后一个元素
        self.elem.pop()

    def length(self):  # 求表长
        return len(self.elem)

    def isEmpty(self):  # 判断表空
        return self.elem == []

    def traverse(self):  # 遍历顺序表
        for item in self.elem:
            print(item, end='  ')
        print('\n')

    def del_fushu(self,L):
        i, j = 0, 0
        while j < len(self):
            if self[j] >= 0:
                self[i] = self[j]
                i += 1
            j += 1
        del self[i:]
        return self





from SqList import SqList

if __name__ == '__main__':
    L=SqList()
    L.listAppend(1)
    L.listAppend(2)
    L.listAppend(-1)
    L.listAppend(-2)
    L.listAppend(3)
    L.listAppend(-3)
    L.traverse()
    L=del_fushu(L)
    L.traverse()


目的是想删除负数,且排序不变
可是老是报错,我基础也有点不好
while j < len(self):
TypeError: object of type 'SqList' has no len()
1 2 -1 -2 3 -3

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-04-28 02:11
    关注
    class SqList:
        def __init__(self):
            self.elem = []
            self.size = 0
          
        def listAppend(self, item):
            self.elem.append(item)
      
        def listInsert(self, index, item):
            if item in self.elem:
                print("表不能有相同元素")
                return
              
            if index<0 or index>self.size:
                print("插入位置无效")
                return
          
            self.elem.insert(index, item)
            self.size += 1
          
        def listDelete(self, index):
            if index<0 or index>=self.size:
                print("删除位置无效")
                return
              
            del self.elem[index]
            self.size -= 1
          
        def deleteLast(self):
            if self.isEmpty():
                print("表已经为空")
                return
          
            del self.elem[self.size-1]
            self.size -= 1
          
        def length(self):
            return self.size
          
        def isEmpty(self):
            return self.size == 0
          
        def traverse(self):
            for item in self.elem:
                print(item, end=' ')
            print()
          
        def del_fushu(self):
            i = 0
            while i < self.size:
                if self.elem[i] < 0:
                    self.listDelete(i)
                else:
                    i += 1
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 创建了问题 4月28日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,