我正在尝试编写一个简单的过程,它只保留一个输入列表(包括嵌套列表).
程序本身 -
def is_list(p):
return isinstance(p, list)
def deep_reverse(input):
result = []
if len(input) == 0:
return []
for element in input:
if is_list(element) == True:
deep_reverse(element)
else:
appended = input.pop
result.append(appended)
print result
return result
Run Code Online (Sandbox Code Playgroud)
我正在输入什么来执行程序 -
p = [1, [2, 3, [4, [5, 6]]]]
print deep_reverse(p)
print p
Run Code Online (Sandbox Code Playgroud)
结果 -
[built-in method pop of list object at 0xb752b0cc]
[built-in method pop of list object at 0xb7529c6c]
[built-in method pop of list object at 0xb7529cec]
[built-in method pop of list object at 0xb7529ecc]
[built-in method pop of list object at 0xb7529ecc]
[1, [2, 3, [4, [5, 6]]]]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
.pop是一种方法.你必须称它为:
appended = input.pop()
Run Code Online (Sandbox Code Playgroud)
这将采取最后一个元素input.如果你想取第一个元素,给它一个参数:
appended = input.pop(0)
Run Code Online (Sandbox Code Playgroud)