如何更改我的代码以在更改后返回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]]]
工厂代码:
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 )
:这样它将返回一个更改过的列表。你知道吗
它的工作方式应该与这个print函数相同,不仅要打印更改,还要在列表本身中进行更改。你知道吗
你的代码有很多不必要的函数定义。
print_wide(L)
定义为pwstart(L, 0)
,pwstart(L, lvl)
定义为pw(L,lvl)
。你知道吗我将所有这些定义折叠成
print_wide
。我还将pw1()
更改为modify()
。你知道吗此外,现有代码有一个严重错误。因为
Q.extend(a)
完全没有任何意义,所以我删除了它。你知道吗因此,下面的代码遍历整个数组,并生成您要求的结果,但它不会打印原始代码本来应该打印的内容。你知道吗
相关问题 更多 >
编程相关推荐