Python:根据条件提取列表中的列表

时间:2015-11-13 08:29:58

标签: python list slice

您好我有一份清单,例如

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

根据子列表的第二个元素,我想得到:

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

2 个答案:

答案 0 :(得分:4)

您可以使用字典根据第二个元素对子列表进行分类:

>>> d = {}
>>> for i,j,k in a :
...     d.setdefault(j,[]).append([i,j,k])
... 
>>> d
{2: [[1, 2, 3], [4, 2, 5]], 3: [[5, 3, 6], [7, 3, 8]]}
>>> d.values()
[[[1, 2, 3], [4, 2, 5]], [[5, 3, 6], [7, 3, 8]]] 

答案 1 :(得分:1)

对子列表的第二个元素的值进行排序:

sorted(a, lambda a, b: a[1] - b[1])