所以假设我有以下列表。
[1,2,[3,4,5,6,[7,8,[9]]]]
有没有一种简单的方法可以在不执行功能的情况下访问列表[9]?
您可以使用while循环:
L = [1,2,[3,4,5,6,[7,8,[9]]]]
lastList = L
while isinstance(lastList[-1],list):
lastList = lastList[-1]
print(lastList)
[9]
Lambdas是另一种语法的函数,所以这个答案可能不是你真正想要的,而是
>>> x = [1,2,[3,4,5,6,[7,8,[9]]]]
>>> z = lambda x: z(x[-1]) if len(x) > 1 else x
>>> z(x)
[9]
假设您有:
li=[1,2,[3,4,5,6,[7,8,[9,10]]]]
您可以使用递归函数来查找最后一个列表:
def flatten(L):
last_list=[]
for item in L:
try:
last_list.append(item)
yield from flatten(item)
except TypeError:
yield last_list
然后只需将发电机排气,最后一个是最后一个列表:
>>> for l in flatten(li): pass
>>> l
[9,10]
>>>