재귀를 사용하여 [1,2,3]과 같은 목록에 square (x)와 같은 함수를 어떻게 적용합니까? 내장 된지도 기능을 사용하지 않고 [1,4,9] 결과를 얻고 싶습니다. 이런 식으로 썼는데 이로 인해 끝나지 않는 오류가 발생합니다.
lst=[1,2,3]
def f(x):
return x**2
def map(lst,f):
i=0
if i>len(lst):
return 0
else:
lst[i]=f(lst[i])
i+=1
return map(lst,f)
이것은 작동합니다 :
def f(x):
return x ** 2
def recursive_map(values, f):
if not values:
return []
else:
# Here we concatenate the f(head) + tail together:
return [f(values[0])] + recursive_map(values[1:], f)
values = [1, 2, 3, 4, 5]
result = recursive_map(values, f)
print(result)
[1, 4, 9, 16, 25]
재귀 함수를 작성하는 방법을 이해하는 데 도움이되는지 확실하지 않습니다. 항상 "end"절로 시작한다는 점을 기억하십시오.이 경우 []
입력이 비어있을 때 빈 목록을 반환합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다