【问题标题】:How to eliminate all elements from a Python list of lists except for the last one?如何从 Python 列表中删除除最后一个之外的所有元素?
【发布时间】:2022-07-11 23:13:56
【问题描述】:

如果我有一个列表列表,我如何从每个列表中删除每个元素,除了最后一个元素? (只保留每个列表中的最后一个元素并删除它之前的所有其他元素)

如果我的列表如下所示:

lst = [['Hello', 'World'], ['Hello', 'E', 'Planet'], ['Planet', 'World', 'Earth']]

我希望我的输出列表如下所示:

lst_new = [['World'], ['Planet'], ['Earth']]

到目前为止,我的代码看起来像这样,但我面临的问题是它正在从列表列表中完全消除最后一个列表:

lst_new = [x for x in lst if x != lst.remove(lst[len(lst)-1])]
print(lst_new)
#[['Hello', 'World'], ['Hello', 'E', 'Planet']]

我哪里错了?将不胜感激任何帮助 - 谢谢!

【问题讨论】:

    标签: python list


    【解决方案1】:

    你可以使用切片:

    lst = [['Hello', 'World'], ['Hello', 'E', 'Planet'], ['Planet', 'World', 'Earth']]
    
    lst_new = [sublst[-1:] for sublst in lst]
    print(lst_new) # [['World'], ['Planet'], ['Earth']]
    

    【讨论】:

      【解决方案2】:

      只需使用简单的索引:

      >>> lst_new = [ [x[-1]] for x in lst ]
      >>> lst_new
      [['World'], ['Planet'], ['Earth']]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-05
        • 2022-07-06
        • 2014-04-02
        • 2012-07-06
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多