按长度排序列表列表时跟踪原始标记

Joh*_*row 5 python sorting list nested-lists

您可以按长度对列表进行排序,如下所示:

l1 = [1,2,3]
l2 = [1,2,3]
l3 = [1,2]
lists = [l1, l2, l3]
sorted_lists = sorted(lists, key=len)
print sorted_lists  #[[1,2], [1,2,3], [1,2,3]]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何跟踪标记,然后匹配sorted_lists原始列表名称的内容l1,l2l3.

很接近,但我不确定在按长度排序时如何实现解决方案.

cs9*_*s95 8

这是非常可能的.只需稍微修改一下密钥即可指定len要应用的正确谓词.

>>> lists = [l1, l2, l3]
>>> lists = sorted(enumerate(lists), key=lambda x: len(x[1])) # enumerate is a tuple of (index, elem), sort by len(elem)
[(2, [1, 2]), (0, [1, 2, 3]), (1, [1, 2, 3])]
Run Code Online (Sandbox Code Playgroud)