주어진 'to_find'가 제공된 중첩 목록에서 발견되면 true를 반환하는 재귀 함수를 어떻게 작성할 수 있습니까?중첩 된 목록 검색
예 :
>>> searchNested([1,[4, 5, 6, [2, 10], 9], [1, 4, 5]], 2)
True
주어진 'to_find'가 제공된 중첩 목록에서 발견되면 true를 반환하는 재귀 함수를 어떻게 작성할 수 있습니까?중첩 된 목록 검색
예 :
>>> searchNested([1,[4, 5, 6, [2, 10], 9], [1, 4, 5]], 2)
True
먼저 평평하게 한 후 in
def searchNested(lst,needle):
def flatten(target):
return_list = list()
for element in target:
if isinstance(element,list):
return_list.extend(flatten(element))
else:
return_list.append(element)
return return_list
lst = flatten(lst)
if needle in lst: return True
else: return False
마지막 부분을 요약하면됩니다.'return needle in flatten (lst)'. – iCodez
def searchNested(xs, y):
if y == xs:
return True
return isinstance(xs, list) and any(searchNested(x, y) for x in xs)
>>> searchNested([1,[4, 5, 6, [2, 10], 9], [1, 4, 5]], 2)
True
>>> searchNested([1,[4, 5, 6, [8, 10], 9], [1, 4, 5]], 2)
False
이미 뭔가를 시도 사용할 수 있습니까? – NPE