如何访问列表中的最后一个列表



所以假设我有以下列表。

[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]
>>> 

最新更新