![](/img/trans.png)
[英]Find maximum sum of sublist in list of positive integers under O(n^2) of specified length Python 3.5
[英]Python: Return top n lists from sublist having maximum length
我有一個列表列表,其中每個子列表都是一個對象列表。 任務是按其長度的降序返回前n個子列表的列表。
插圖:
[[{},{},{},{}],[{},{},{}],[{},{}],[{}],[]]
對於以上內容,我想按長度返回前3個子列表的列表,即
[[{},{},{},{}],[{},{},{}],[{},{}]]
因為子列表的最大長度分別為列表的3,2,1。
您有兩種可能的選擇,例如:
l = [[{},{},{},{}],[{},{},{}],[{},{}],[{}],[]]
您可以生成一個全新的列表,並采用所需的3個元素:
sorted(l, key=len, reverse=True)[:3]
或者,您可以對原始列表進行排序,並且它們采用前三個元素:
l.sort(key=len, reverse=True)
l[:3]
在性能方面,第二種選擇似乎更快:
In [1]: %timeit sorted(l, key=len, reverse=True)[:3]
1.9 µs ± 28.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
In [2]: %%timeit
...: l.sort(key=len, reverse=True)
...: l[:3]
...:
1.22 µs ± 33.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.