【问题标题】:Python - Remove list(s) from list of lists (Similar functionality to .pop() )Python - 从列表列表中删除列表(类似于 .pop() 的功能)
【发布时间】:2014-02-18 17:07:51
【问题描述】:
a=[[1,2,3],[4,5,6],[7,8,9]]

.pop() 不仅可以删除列表中的元素,还可以返回该元素。

我正在寻找一个类似的函数,它可以删除并返回可能存在于另一个列表中间的整个列表。

例如,是否有一个函数可以从上述列表a 中删除[4,5,6],并返回它。

问题的原因是我正在通过itemgetter 对列表进行排序,并且标题行(字符串)和其余数据(datetime)之间存在冲突。因此,我希望有效地弹出代表标题的列表,进行排序,然后将其重新插入。

【问题讨论】:

    标签: python python-3.x list


    【解决方案1】:

    嵌套列表只是外部列表中的值。只需在外部列表中使用.pop()

    inner_list = a.pop(1)
    

    演示:

    >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    >>> a.pop(1)
    [4, 5, 6]
    >>> a
    [[1, 2, 3], [7, 8, 9]]
    

    如果有标题行,您可以只使用切片从考虑中删除第一行:

    result = rows[:1] + sorted(rows[1:], key=itemgetter(1))
    

    【讨论】:

    • @SteveJessop:啊,是的,我更喜欢干净地设置间距的列表。 :-P 那是我清理了没有空格的 OP 格式,并且不小心在此处粘贴了这 2 行。
    • 不错的单线。谢谢
    • 要完成最终目标,只需使用Martijn答案的最后一行
    猜你喜欢
    • 2020-01-23
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多