파이썬 재귀함수 예제 질문입니다.

조회수 652회

building = ["경복궁", 1395, ["숭례문", 1396, ["창덕궁", 1405]]] 이 building 문자열을

 경복궁
 1395
    숭례문
    1396
        창덕궁
        1405

이런 식으로 표현하고자 합니다. 기본적으로 주어진 함수는

def printItems(aList):
    for item in aList:
        if isinstance(item, list):
            printItems(item)
        else:
            print(item)

이며 여기에 '\t'를 다루는 인자 tab를 추가해서 재귀함수를 호출한다면 공백을 한번 넣어 출력하고 이후 tab만큼 더 공백을 띄게 하고싶은데 도움이 필요합니다..

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • building = ["경복궁", 1395, ["숭례문", 1396, ["창덕궁", 1405]]]
    
    def printItems(lst, tabs=''):
        for item in lst:
            if isinstance(item, list):
                printItems(item, tabs+'\t')
            else:
                print('%s%s'%(tabs, item))
    
    
    printItems(building)
    
    경복궁
    1395
        숭례문
        1396
            창덕궁
            1405
    
    • 감사합니다. 혹시 tabs를 변수로 지정하여 printIems(building, 0) 가 같은 결과값을 보이게 수정하려면 어디를 건드려야 할까요? 알 수 없는 사용자 2020.4.14 14:37
    • @Lee.HS : 제 예제코드를 잘 이해하려고 해 보세요. 그렇게 어렵지 않아요. 왜 저렇게 되는지 이해가 간다면, 어디를 건드릴 지 스스로 알아낼 수 있고, 더 좋은 코드로 바꿀 수 있을 겁니다. nowp 2020.4.14 14:48
    • 예. 해보겠습니다 알 수 없는 사용자 2020.4.14 14:49

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)