특정 규칙에 따라 목록을 만드는 작업이 있습니다. 목록은 루트가있는 트리를 나타내야하며이 루트에서 특정 색상으로 분기합니다. 각 분기는 하위 요소 목록으로 표시되어야합니다 (하나의 검은 색 분기는 흰색을 생성하고 하나의 흰색 분기는 검정을 생성합니다). 예 : root=['black']
, 첫 번째 분기 [['white','white','white']]
, 다음 반복은 [[[black,black],[black,black],[black,black]]]
이어야합니다.목록의 무한 중첩 목록 만들기
이 무한한 목록은 전역 변수에 저장해야합니다. 가능한가? 이러한 목록을 생성하는 내 코드는 미리 정해진 수의 단계에서만 수행합니다.
root = ['b']
def change(root):
for index, item in enumerate(root):
if isinstance(item, list):
change(item)
elif item == 'b':
root[index] = ['w','w','w']
elif item == 'w':
root[index] = ['b','b']
return root
for i in range(3):
tree=change(root)
print(tree)
가능한 경우 어떻게하면 무한한 목록을 생성 할 수 있습니까? 귀하의 질문에 대한 코멘트에서
실제 무한한 목록을 생성 할 수 없습니다. 메모리가 충분하지 않을 것입니다. –
메모리 이외에, 얼마나 많은 레벨을 중첩 할 수 있는지는 제한이 없습니다. –
@MartijnPieters 아마도 그는 특정 패턴을 따르는 잠재적 인 무한리스트를 산출하는 프로그램을 작성해야 할 필요가 있음을 의미합니다. – Tagc