我正在尝试做等同于]的事情>
a=[[[[[1,2,3,4,5]]]]] res = a.pop().pop().pop()
这将返回
[[1, 2, 3, 4, 5]]
,但我希望能够执行弹出序列n
次,所以类似a.pop() for _ in range(n)
不能作为其在a
对象而非a.pop()
对象上的调用pop()起作用。关于如何在python中完成此工作的任何线索,如果有的话,它将被称为什么以供将来参考?我能找到的最接近的东西是*运算符,用于将list()转换为单独的参数
我不想做这样的事情(忽略边缘情况):
tmp=a.pop() for _ in range(n-1): tmp=tmp.pop()
我正在尝试做等同于a = [[[[[[1,2,3,4,5]]]]] res = a.pop()。pop()。pop()的操作[[1、2、3、4、5]],但是我希望能够执行弹出序列n次,所以类似...
这个很有趣,但是我不建议您做下面我写的事情,因为它不可读。
首先,您不想显式创建一个函数。您希望具有像表达式这样的列表理解功能。这是规则。
您可以使用递归。此函数获取一个列表以及您要执行的弹出次数,然后返回结果
a = [[[[[1, 2, 3, 4, 5]]]]]
def pop_n(l, n):
item = l.pop()
if n < 2:
return item
else:
return pop_n(item, n-1)
res = pop_n(a, 3)
print(res)
# [[1, 2, 3, 4, 5]]