Python - 从列表列表中删除列表(与.pop()类似的功能)

时间:2014-02-18 17:07:52

标签: python list python-3.x pop

a=[[1,2,3],[4,5,6],[7,8,9]]

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

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

例如,有一个函数会从上面的列表[4,5,6]中删除a,并将其返回。

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

1 个答案:

答案 0 :(得分:15)

嵌套列表只是外部列表中的值。只需在外部列表中使用.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))