リストのリストがあります。各サブリストはオブジェクトのリストです。タスクは、上位n個のサブリストのリストを長さの降順で返すことです。
図:
[[{},{},{},{}],[{},{},{}],[{},{}],[{}],[]]
上記の場合、長さごとに上位3つのサブリストのリストを返します。
[[{},{},{},{}],[{},{},{}],[{},{}]]
サブリストはリストからそれぞれ最大の長さ3、2、1を持っているため。
次の2つの選択肢があります。
l = [[{},{},{},{}],[{},{},{}],[{},{}],[{}],[]]
完全に新しいリストを作成し、必要な3つの要素を取得できます。
sorted(l, key=len, reverse=True)[:3]
または、元のリストを並べ替えて、最初の3つの要素を取得することもできます。
l.sort(key=len, reverse=True)
l[:3]
パフォーマンスの観点から、2番目のオプションはより高速に見えます。
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)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加