2024-04-28 03:26:42 发布
网友
如何根据任意函数描述的键对列表进行排序?例如,如果我有:
mylist = [["quux", 1, "a"], ["bar", 0, "b"]]
我想按每个成员的第二个元素对“mylist”进行排序,例如
sort(mylist, key=lambda x: x[1])
我该怎么做?
你有两个选择,非常接近你所描述的,实际上:
mylist.sort(key=lambda x: x[1]) # In place sort new_list = sorted(mylist, key=lambda x: x[1])
这是一种常见的需求,因此已将对它的支持以^{}的形式添加到标准库中:
from operator import itemgetter mylist = [["quux", 1, "a"], ["bar", 0, "b"]] mylist.sort(key=itemgetter(1)) # or sorted(mylist, key=...)
你基本上已经有了:
>>> mylist = [["quux", 1, "a"], ["bar", 0, "b"]] >>> mylist.sort(key=lambda x: x[1]) >>> print mylist
给出:
[['bar', 0, 'b'], ['quux', 1, 'a']]
这会把我的名单整理好。
[由于@Daniel的更正,此段已编辑。]sorted将返回一个已排序的新列表,而不是实际更改输入,如http://wiki.python.org/moin/HowTo/Sorting/中所述。
sorted
你有两个选择,非常接近你所描述的,实际上:
这是一种常见的需求,因此已将对它的支持以^{} 的形式添加到标准库中:
你基本上已经有了:
给出:
这会把我的名单整理好。
[由于@Daniel的更正,此段已编辑。]
sorted
将返回一个已排序的新列表,而不是实际更改输入,如http://wiki.python.org/moin/HowTo/Sorting/中所述。相关问题 更多 >
编程相关推荐