방금 학습을 시작했고리스트의 중첩 깊이를 알려주는 프로그램을 작성했습니다. 글쎄, 내가 주위를 탐색하고 이것을 수행하는 작업 코드를 발견했지만, 나는 아직도 어떻게 작동하는지 이해하는 데 어려움을 겪고있다. 코드는 다음과 같습니다.이 코드를 이해하는 데 어려움이 있습니다
def depth(L) :
nesting = []
for c in L:
if type(c) == type(nesting) :
nesting.append(depth(c))
if len(nesting) > 0:
return 1 + max(nesting)
return 1
당연히 필자는 재귀를 호출하는 append와 함께 혼란에 빠지기 시작합니다. 누구가 여기에서 무슨 일이 일어나고 있는지 설명하는 간단한 방법이 있습니까? 실제로 추가되는 것이 무엇인지 확신 할 수 없으며, 내 머리 속의 테스트 케이스를 통해이를 통과하는 것이 도움이되지 않습니다. 감사!
편집 : 형식이 좋지 미안 경우, 나는 그래서이 될 것으로 보인다 것은 당신이 그것을 넣어, 목록 및 계산을 취하는 함수, 그것의 중첩 깊이가 내 전화
'type (nesting)'대신'type (L)'을 사용하는 것이 더 낫습니다. 그런 다음이 함수는 중첩 된 튜플을 처리 할 수도 있습니다. –