0

我有两个这样的列表字典

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

现在我想要那个

  1. 计算每个列表中的元素个数
  2. 然后基于哪个更大,然后获取该对象列表

我想要一个列表,该列表包含以上两个基于更多元素的字典列表(列表),这样我就会导致这样的事情

mylist = myfunc(objects1, objects2  )

mylist 应该是一个列表,[objects1, objects2]取决于谁拥有更多的对象。

用更少的代码行来做到这一点的最好方法是什么

像编辑一样的东西

mylist = sorted([obj1, obj2], key=lambda a: len(a), reverse=True)
4

2 回答 2

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]]
于 2013-04-26T05:48:07.793 回答
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]]
于 2013-04-26T05:44:45.750 回答