【发布时间】:2013-11-26 20:07:19
【问题描述】:
如何更改我的代码以在更改后返回 LLL?
我有一个清单:
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”是什么意思?
-
我的意思是这里只是打印,我想返回更改列表,而不仅仅是打印更改...
-
很清楚他想要什么。这些函数当前打印使用传入的函数更改的列表。他希望这些函数也返回更改的列表。
-
我该怎么做,有什么想法吗?...请帮助..尝试过任何事情