当前位置:  开发笔记 > 编程语言 > 正文

在列表中排序列表

如何解决《在列表中排序列表》经验,为你挑选了2个好方法。

是否有一种简单的方法可以对列表中的列表进行排序,使值从最小到最大,反之亦然?到目前为止,我只能找到有关根据主要价值排序列表的信息.

这是一个例子:

data = [[8,7], [10,5,], [8,10]]

>> [[7,8], [5,10], [8,10]

blacksite.. 10

使用列表推导对每个元素(每个list对象)进行排序data:

data = [sorted(x) for x in data]

data 就是现在:

[[7, 8], [5, 10], [8, 10]]

你也可以这样做:

map(sorted, data)

然后使用listmap对象实际将其转换为列表...



1> blacksite..:

使用列表推导对每个元素(每个list对象)进行排序data:

data = [sorted(x) for x in data]

data 就是现在:

[[7, 8], [5, 10], [8, 10]]

你也可以这样做:

map(sorted, data)

然后使用listmap对象实际将其转换为列表...



2> Iron Fist..:

你有一个列表列表,这里没有涉及元组,你也可以使用内置方法mapsorted:

>>> data = [[8,7], [10,5,], [8,10]]
>>> 
>>> list(map(sorted, data))
[[7, 8], [5, 10], [8, 10]]

在Python3中,map返回一个迭代器,所以如果你需要它作为一个列表,你需要将它转换回来list,否则,如果你在一个循环中使用它,那么就不需要将它转换为一个列表.它以这种方式节省了内存.

编辑:

回复您的评论,您可以执行以下操作:

>>> def f(lst):
        lst = sorted(lst)
        return(lst[0], lst)

>>> print(*map(f, data))
(7, [7, 8]) (5, [5, 10]) (8, [8, 10])

或者更紧凑但可读性更低:

>>> print(*map(lambda lst: '{} - {}'.format(lst[0], lst), map(sorted, data)), sep='\n')
7 - [7, 8]
5 - [5, 10]
8 - [8, 10]

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有