변경 후 평생을 되돌리기 위해 내 코드를 어떻게 바꿀 수 있습니까?재귀 및 공장 문제
나는 목록이 있습니다
LLL = [12,[3,[5],[6,[[7, [],8], []]]], [8, [0,87,23,434,444,33]]]
을하고 나는이 함수를 호출 :이 기능은 변경 후 목록을 반환해야
def testQ1():
dolist_deep_add1 = factory_dolist_deep_A((lambda x: x + 1))
print ('dolist_deep_add1(LLL) : ', dolist_deep_add1(LLL))
합니다. 결과 임에 대한 기다림 :
LLL = [13,[4,[6],[7,[[8, [],9], []]]], [9, [1,88,24,435,445,34]]]
factory_dolist_deep_A 코드 :
def factory_dolist_wide_A(fa):
def print_wide (L):
def pw1(x):
if type(x) is int:
x = fa(x)
print(str(x)+' ', end='')
def pwstart (L, lvl):
print('\nlevel ' + str(lvl) + " : " , end='')
pw (L, lvl)
def pw (L, lvl):
if not L: return
Q = []
for a in L:
if type(a) is list:
if a == [] : pw1('[]')
else: Q.extend(a)
else:
pw1(a)
pwstart(Q , lvl + 1)
return pwstart(L, 0)
return print_wide
을 지금은 그냥 숫자를 취득하여 인쇄 목록 자체를 변경하지 않고.
변경된 목록을 반환하도록 factory_dolist_wide_A(fa)
을 변경하고 싶습니다.
이 인쇄 기능과 동일한 방식으로 작동하며 변경 내용을 인쇄 할뿐만 아니라 목록 자체를 변경해야합니다.
귀하의 질문은 명확하지 않습니다. "변경 후 L을 돌려 주겠다"는 것은 무엇을 의미합니까? – mgilson
나는 단지 여기에 그 내용이 인쇄된다는 것을 의미하며 변경 사항을 인쇄하지 않고 변경 사항 목록을 반환하고 싶습니다 ... –
그가 원하는 것이 무엇인지 분명합니다. 함수는 현재 전달 된 함수를 사용하여 변경된 목록을 인쇄합니다.이 함수는 변경된 목록도 반환하기를 원합니다. –