2014-02-18 112 views
4
a=[[1,2,3],[4,5,6],[7,8,9]] 

.pop()有能力不僅刪除列表中的元素,而且還返回該元素。Python - 從列表中刪除列表(與.pop())類似的功能

我在尋找一個類似的函數,它可以刪除並返回可能存在於另一個列表中間的整個列表。

例如,是否有一個函數將從上面的列表a中刪除[4,5,6],並將其返回。

問題的原因是,我正在通過itemgetter對列表進行排序,標題行(字符串)與其餘數據(datetime)之間存在衝突。因此,我期望有效地彈出代表標題的列表,進行排序,然後將其重新插入。

回答

14

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

@SteveJessop:嗯,是的,我更喜歡用間距乾淨地設置列表。 :-P這就是我清理沒有空格的OP格式,並且在這裏粘貼了兩個額外的行。 –

+0

不錯的單線。謝謝 – Phoenix

+1

要完成最終目標,只需使用Martijn最後一行的答案 –