我想构造一个类来展平Python列表。我可以通过定义这样的函数来实现它;
liste=[[1,2],3,[4],[[5],6]]
flatLIST=[]
def recur(a):
if (type(a)==list):
for i in a:
recur(i)
else:
flatLIST.append(a)
recur(liste)
flatLIST
block 引用>[1, 2, 3, 4, 5, 6]
但是当我无法通过构造类来实现它时。
class flatYVZ(): def __init__(self,liste): self.flatLIST=[] recur(liste) def recur(self,a): if (type(a)==list): for i in a: recur(i) else: self.flatLIST.append(a) def flatting(self): self.sonuc=self.flatLIST example=[[1,2],3,[4],[[5],6]] objec=flatYVZ(example) objec.sonuc
block 引用>[]
最佳答案
您需要引用self
,否则您将调用之前定义的函数,而不是您的类方法。
这里需要将__init__
和recur(i)中的
到 recur(liste)
更改为self.recur(liste)
recur(self, a)
中的 self.recur(i)
。
class flatYVZ():
def __init__(self,liste):
self.flatLIST=[]
self.recur(liste)
def recur(self,a):
if (type(a)==list):
for i in a:
self.recur(i)
else:
self.flatLIST.append(a)
def flatting(self):
self.sonuc=self.flatLIST
example=[[1,2],3,[4],[[5],6]]
objec=flatYVZ(example)
print(objec.flatLIST)
关于python - 构造一个类来展平 python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53493815/