如何在python中使用键对列表进行排序

时间:2013-04-26 05:28:48

标签: python sorting

我有这样的两个列表字典

obj1 = [mydict['obj1'],mydict['obj2'],mydict['obj3'],mydict['obj4']]  
obj2 = [mydict['obj1'],mydict['obj2'],mydict['obj3'],mydict['obj4'], mydict['obj5'] ] 

现在我想要那个

  1. 计算每个列表中的元素数量
  2. 然后基于哪个更大,然后获取对象列表
  3. 我想要一个单独的列表,其中包含基于更多元素的上述两个(字典)字典列表,因此我会导致这样的事情

    mylist = myfunc(objects1, objects2  )
    

    mylist应该是[objects1, objects2]之类的列表,具体取决于具有更多对象的人。

    使用较少的代码行来实现这一目标的最佳方法是什么

    像EDIT

    之类的东西
    mylist = sorted([obj1, obj2], key=lambda a: len(a), reverse=True)
    

2 个答案:

答案 0 :(得分:2)

如果它只是要调用一个函数,就不需要使用lambda函数。

>>> objects1 = [1, 2, 3]
>>> objects2 = ['1', '2', '3', '4']
>>> 
>>> mylist = [objects1, objects2]
>>> max(mylist, key=len)
['1', '2', '3', '4']

>>> sorted(mylist, key=len, reverse=True)
[['1', '2', '3', '4'], [1, 2, 3]]

答案 1 :(得分:0)

objects1 = [1, 2, 3]
objects2 = ['1', '2', '3', '4']

mylist = [objects1, objects2]
mylist.sort(key=len, reverse=True)
print mylist

[['1', '2', '3', '4'], [1, 2, 3]]