我试图以递归方式取消列表,但是我遇到了一个有效的方法来解决第二个维度的问题。这适用于前两个维度,但如果没有深入了解更多if语句,它将无法正常运行。
UBLst = []
#Appends variables after they are retrieved from list of any dimension
def antidimension(List):
global UBLst
if List == []:
ReturnLst = UBLst
UBLst = []
return ReturnLst
elif not isinstance(List[0], list):
if List[0] != []:
UBLst.append(List[0])
List.remove(List[0])
return antidimension(List)
elif isinstance(List[0], list):
for item in List[0]:
UBLst.append(item)
List.remove(List[0])
return antidimension(List)
答案 0 :(得分:1)
听起来你想要递归地压扁列表:
def flatten(myList):
if isinstance(myList[0], list):
out = []
for x in map(flatten, myList):
out.extend(x)
return out
else:
return myList
除非您有类似2k嵌套列表的内容,否则从技术上讲这应该对大多数常见场景都是安全的。