재귀 목록은 쌍 체인으로 표시됩니다. 각 쌍의 첫 번째 요소는 목록의 요소이고 두 번째 요소는 나머지 목록을 나타내는 쌍입니다. 마지막 쌍의 두 x 째 요소는 없음으로, 목록이 종료되었음을 나타냄니다. 중첩 된 튜플 리터럴을 사용하여이 구조체를 생성 할 수 있습니다. 예 : 변환튜플 및 재귀 목록 변환
(1, (2, (3, (4, 없음))))
지금까지 내가 만든 방법 값의 튜플 또는 None 값을 해당 rlist에 추가합니다. 이 메소드는 to_rlist (items)로 불린다. 예 :
rlist를 입력으로 받아 해당 튜플을 반환하는 함수 인 to_rlist의 역함수를 쓰려면 어떻게해야합니까? 메서드는 to_tuple (매개 변수)로 호출되어야합니다. 수행 할 작업의 예 :
>>> x = to_rlist((1, (0, 2),(), 3))
>>> to_tuple(x)
(1, (0, 2),(), 3)
참고 : to_rlist 메소드는 의도 한대로 작동합니다.
>>> x = to_rlist((1, (0, 2),(), 3))
>>> to_tuple(x)
(1, 0, 2,(), 3)
가 어떻게 제대로 중첩 된 튜플을 반환하는 내 방법을 수정할 수 있습니다
def to_tuple(L):
if not could_be_rlist(L):
return (L,)
x, y = L
if not x is None and not type(x) is tuple and y is None:
return (x,)
elif x is None and not y is None:
return ((),) + to_tuple(y)
elif not x is None and not y is None:
return to_tuple(x) + to_tuple(y)
나에게 (잘못) 다음과 같은 결과를 얻을 어떤 :
이
내가 지금까지 무엇을 가지고 ? 이 하나가 내 HW 근무
재귀 목록 자체에 대한 참조를 포함하는 하나입니다. – wim
@wim "자체적으로 정의 된 목록 유형"을 의미 할 수도 있습니다.이 경우에는 적합 할 것입니다. (아마도 할당에서 사용하는 용어 일 수도 있고, 머무를 수있는 또 다른 이유이기도합니다.) – millimoose
@ user1140118 : 스택 오버플로는 "나를위한 숙제"사이트가 아닙니다. 당신은 스스로 기능을 시작해야하고, 당신이 가진 * 구체적인 * 문제에 대한 질문을 게시해야합니다. – millimoose