【发布时间】:2021-09-23 07:32:25
【问题描述】:
我有一个这样的列表
list = [[1, 2, 3, 4], [1, 9, 12], [9], [8], [7, 8, 9, 10, 12, 16], [7, 8, 9, 10], [4, 5, 6, 7], [6, 7, 8, 9, 10, 11]]
我需要从上面的嵌套列表中找到按列表长度计算的k-th 最大的子列表,有一个小转折:
-
如果 K =2,答案应该是 [4,5,6,7],因为它在后面 处理
-
如果 K = 1,答案应该是 [6, 7, 8, 9, 10, 11],因为它稍后会出现 在处理中
我最初按长度对嵌套子列表进行排序,我认为这对于找到第 k 个最大的子列表很有用,因为它还保留了之前处理它们的列表的顺序
sorted_list = [[9], [8], [1, 9, 12], [1, 2, 3, 4], [7, 8, 9, 10], [4, 5, 6, 7], [7, 8, 9, 10, 12, 16], [6, 7, 8, 9, 10, 11]]
无法确定从这里找到第 k 个最大元素的正确方法,
在最后两个子列表长度相同的大多数情况下,返回 sorted_list[-K] 将不起作用。
不要将列表元素与排序混淆,排序是根据子列表的长度进行的,排序保留在 sorted_list 中
【问题讨论】:
-
“最大子列表”是什么意思?
-
为什么不倒序排序并返回
k-1-th?仍然不清楚为什么k=2应该返回[4,5,6,7]。也许只是对 2 元素元组 - len 和原始索引进行排序。 -
stackoverflow.com/users/12062831/g%c3%b6khan-san stackoverflow.com/users/4046632/buran by最大子列表表示嵌套列表中列表的大小;类似于这里的最大数字列表的大小将决定列表。
-
也不知道为什么 [4,5,6,7] 是那里的第二大列表。你能写出你的例子中正确的完全排序列表应该是什么吗?
-
那么,将您的问题改写为“在所有不同长度的列表中,找到长度为第 k 大不同长度且在原始列表中出现在最后的列表是否公平?” /跨度>
标签: python python-3.x list nested-lists