2024-06-16 11:58:51 发布
网友
我读了一个动态变化的树,它的值以不均匀嵌套列表的形式出现。你知道吗
[u'All VMs & Templates', [[u'vSphere 5.5 (nested)', [[u'Datacenter', [[u'Discovered virtual machine', [u'vm1', 'vm2', 'vm3']]]]]]]
列表模式会因不同的树而改变,但在所有情况下,我都希望最后一个值,即vm3在这里,那么是否有函数或方法来获取它?你知道吗
您可以使用递归函数,如下所示:
In [61]: def get_last(lst): last = lst[-1] if isinstance(last, list): return get_last(last) return last ....: In [62]: In [62]: get_last(lst) Out[62]: 'vm3'
但作为一种更为python的方法,我建议如果您从其他地方读取这些数据或创建一个特殊类型,那么可以为此向对象添加一个特定的方法。类似于preserve_the_last()。然后,可以使用最大长度为1的deque()对象,该对象在每次迭代时接受输入数据。在这种情况下,你会在最后提出最新的项目。然后你可以得到最后一个项目使用一个切片。你知道吗
preserve_the_last()
deque()
可以使用while循环在每个嵌套列表中保持最后一次获取,直到到达非列表实例:
val = lst[-1] while isinstance(val, list): val = val[-1]
您可以使用递归函数,如下所示:
但作为一种更为python的方法,我建议如果您从其他地方读取这些数据或创建一个特殊类型,那么可以为此向对象添加一个特定的方法。类似于
preserve_the_last()
。然后,可以使用最大长度为1的deque()
对象,该对象在每次迭代时接受输入数据。在这种情况下,你会在最后提出最新的项目。然后你可以得到最后一个项目使用一个切片。你知道吗可以使用while循环在每个嵌套列表中保持最后一次获取,直到到达非列表实例:
相关问题 更多 >
编程相关推荐