Python 如何按照列表的长度重新排列包含列表的文本文件

Python 如何按照列表的长度重新排列包含列表的文本文件,python,python-3.x,Python,Python 3.x,例如,如果我有一个文本文件,其中包含: [1,2,3,4,5] [1,2,3] [1,2,3,4] 致: 结果如下: [[6, 7, 8], [3, 5, 8, 2], [1, 2, 3, 4, 5]] 请给我们看看你到目前为止都做了些什么。我们是来帮助你的,不是为你做的。read txt->sort data->write txt将文件读入一个行列表,使用ast.literal\u eval将行放入列表s,然后根据len对它们进行排序。每个大小是否只有一个或相同大小的倍数?这会使你想做的事

例如,如果我有一个文本文件,其中包含:

[1,2,3,4,5]
[1,2,3]
[1,2,3,4]
致:

结果如下:

[[6, 7, 8], [3, 5, 8, 2], [1, 2, 3, 4, 5]]

请给我们看看你到目前为止都做了些什么。我们是来帮助你的,不是为你做的。read txt->sort data->write txt将文件读入一个
行列表
,使用
ast.literal\u eval
将行放入
列表
s,然后根据
len
对它们进行排序。每个大小是否只有一个或相同大小的倍数?这会使你想做的事情有所不同。例如,你可以有
(1,2,3,4,5)
和`(5,4,3,2,1)我会有多个相同长度的文件,但相同长度的列表的顺序并不重要,即使
key=lambda x:(len(x),x)
,相同列表的列表也会按字典顺序排序。我认为它们无论如何都会这样做。
排序的部分功能
。我不这么认为;如果提供
key
,则只有键值列表被有效排序,并且生成键值的对象被相应地重新排列。通常,排序算法不会重新排列相等的项,因此长度相等的列表将保留其初始顺序。这很容易测试:
data = [[1, 2, 3, 4, 5], [6, 7, 8], [3, 5, 8, 2]]

sorted(data, key=lambda x : len(x))
[[6, 7, 8], [3, 5, 8, 2], [1, 2, 3, 4, 5]]