我有一个看起来像这样的嵌套列表:
raw =
[[(8, 0.44880571384598744), (17, 0.0403732344197908),
(13, 0.03796821181062157), (1, 0.03777621092166489),
(3, 0.02907007584458954), (5, 0.027577126778171947)],
[(6, 0.24885153810452418), (13, 0.11945937235381485),
(1, 0.07967490411502279), (7, 0.059837943219436064),
(11, 0.054917316390175455), (3, 0.05439173103552319),
(12, 0.042902668032641526), (2, 0.04067120278932331)]]
我想基于每个子列表的索引[0]处的int对嵌套列表进行排序。
但是当我尝试这样做时:
sortraw = []
for line in raw:
k = sorted(line[0])
sortraw.append(k)
根据每个子列表的float值对列表进行排序,并且嵌套列表消失。
我想要的结果将如下所示:
[[(1, 0.03777621092166489), (3, 0.02907007584458954),
(5, 0.027577126778171947), (8, 0.44880571384598744),
(13, 0.03796821181062157), (17, 0.0403732344197908)],
[(1, 0.07967490411502279), (2, 0.04067120278932331),
(3, 0.05439173103552319), (6, 0.24885153810452418),
(7, 0.059837943219436064), (11, 0.054917316390175455),
(12, 0.042902668032641526), (13, 0.11945937235381485)]]
我该怎么做?
答案 0 :(得分:3)
raw = [[(8, 0.44880571384598744), (17, 0.0403732344197908),
... (13, 0.03796821181062157), (1, 0.03777621092166489),
... (3, 0.02907007584458954), (5, 0.027577126778171947)],
... [(6, 0.24885153810452418), (13, 0.11945937235381485),
... (1, 0.07967490411502279), (7, 0.059837943219436064),
... (11, 0.054917316390175455), (3, 0.05439173103552319),
... (12, 0.042902668032641526), (2, 0.04067120278932331)]]
>>> [sorted(sublist) for sublist in raw]
[[(1, 0.03777621092166489), (3, 0.02907007584458954), (5, 0.027577126778171947), (8, 0.44880571384598744), (13, 0.03796821181062157), (17, 0.0403732344197908)], [(1, 0.07967490411502279), (2, 0.04067120278932331), (3, 0.05439173103552319), (6, 0.24885153810452418), (7, 0.059837943219436064), (11, 0.054917316390175455), (12, 0.042902668032641526), (13, 0.11945937235381485)]]
或者就地进行:
for sublist in raw: sublist.sort()
答案 1 :(得分:2)
如果您不想对整个raw
列表进行排序,则可以使用:
list(map(sorted, raw)
答案 2 :(得分:1)
您可以改用lambda函数:
print(list(map(lambda x:sorted(x), raw)))
输出:
[[(1, 0.03777621092166489), (3, 0.02907007584458954), (5, 0.027577126778171947), (8, 0.44880571384598744), (13, 0.03796821181062157), (17, 0.0403732344197908)], [(1, 0.07967490411502279), (2, 0.04067120278932331), (3, 0.05439173103552319), (6, 0.24885153810452418), (7, 0.059837943219436064), (11, 0.054917316390175455), (12, 0.042902668032641526), (13, 0.11945937235381485)]]