【发布时间】:2018-05-11 08:25:14
【问题描述】:
我正在从事一项尝试在 Python 3 中设计两种抽象数据类型的作业。我的问题是关于子类“dnmMtx”我正在寻找有关返回列数以及此子类中最长行“大小”的指导" 函数,并且还试图弄清楚如何删除一行。起初我以为我可以弹出一行或使用 .delete 选项,但都没有成功。另外,目前我的 size 函数返回有多少行。非常感谢您的帮助!
class DnmArr:
def __init__(self):
#create empty list
self.arr=[]
def __del__(self):
print('Deconstructed')
#return length
def length(self):
return len(self.arr)
#append
def append(self, x):
#add x to arr
if type(x) == int:
self.arr.append(x)
else:
print('Not an integer.')
#delete
def delete(self,x):
index = x
#if element is present in array
if index <= len(self.arr):
self.arr.pop(index)
else:
print('Element does not exist.')
def value(self, x):
if x <= len(self.arr) and type(x) == int:
print(self.arr[x-1])
else:
print('Does not exist or list indices is not an integer')
#initializing subclass using parent
class DnmMtx(DnmArr):
def __init__(self):
DnmArr.__init__(self)
self.arr=[[],[]] #creating 2d array
def __del__(self):
print('Deconstructed')
def addrow(self):
row = []
self.arr.append(row)
def delrow(self, x):
if type(x) == int:
self.arr.delete(arr[x])
else:
print('row does not exist/invalid row')
def size(self):
return len(self.arr)
def append(self, x, y):
if type(x) and type(y) == int:
self.arr[x].append(y)
else:
print('Not an integer.')
def delete(self, x, y):
#if element is present
if y <= len(self.arr[x]) and x <= len(self.arr): #check
self.arr[x].pop(y)
else:
print('Element does not exist.')
def value(self, x, y):
if x and y <= len(self.arr) and type(x) and type(y) == int:
print(self.arr[x-1][y-1])
else:
print('Does not exist or list indices is not an integer')
#create object of type Dynamic Array
a = DnmArr()
b = DnmMtx()
【问题讨论】:
-
我刚刚意识到我的删除功能也有缺陷,在我现在不确定是什么导致错误之前它正在工作
标签: python python-3.x list class abstract-data-type