谁能帮我修改一下啊
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
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
这并不是一个问题,而是给出了一个2048小游戏的代码。需要进一步确定您需要什么样的帮助或是有什么问题,才能提供更加具体的解决方案。