2016-07-14 6 views
0

재귀 적으로 목록을 unembered 노력하고 있지만 두 번째 차원 과거 효율적인 방법으로 문제가 있습니다. 이것은 첫 번째 두 가지 차원에서 잘 작동하지만 더 많은 if 문을 사용하지 않아도 지나치게 작동하지는 않습니다. 당신이 2K 중첩 된 목록 같은 것을하지 않는 한이 기술적으로 가장 일반적인 시나리오에 대한 안전해야초급 재귀 및 목록 2 차원 지나서 문제가

def flatten(myList): 
    if isinstance(myList[0], list): 
    out = [] 
    for x in map(flatten, myList): 
     out.extend(x) 
    return out 
    else: 
    return myList 

: 재귀 목록을 평평하게하려면 같은

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) 
+2

"언 박이"란 정확히 무엇을 의미합니까? 예제 입력과 그 결과를 얻기를 원하십니까? – Mureinik

답변