Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按值对python集列表进行排序_Python_Sorting_Hashmap_Set_Frozenset - Fatal编程技术网

按值对python集列表进行排序

按值对python集列表进行排序,python,sorting,hashmap,set,frozenset,Python,Sorting,Hashmap,Set,Frozenset,frozenset文档说: frozenset类型是不可变和可散列的-其内容在创建后不能更改;因此,它可以用作字典键或另一个集合的元素 但是,python集合的文档说: 由于集合仅定义偏序子集关系,因此集合列表的list.sort方法的输出未定义 这让我不禁要问:为什么会这样?如果我想按集合内容对集合列表进行排序,我该怎么做?我知道扩展名intbitset:,有一个返回表示集合内容的位序列的函数。python集合是否具有可比性?元组、列表、字符串等具有自然的字典顺序,并且可以排序,因为您始终可以

frozenset文档说:

frozenset类型是不可变和可散列的-其内容在创建后不能更改;因此,它可以用作字典键或另一个集合的元素

但是,python集合的文档说:

由于集合仅定义偏序子集关系,因此集合列表的list.sort方法的输出未定义


这让我不禁要问:为什么会这样?如果我想按集合内容对集合列表进行排序,我该怎么做?我知道扩展名intbitset:,有一个返回表示集合内容的位序列的函数。python集合是否具有可比性?

元组、列表、字符串等具有自然的字典顺序,并且可以排序,因为您始终可以比较给定集合的两个元素。也就是说,a
两个集合之间的自然比较是元组、列表、字符串等具有自然的字典顺序,并且可以排序,因为您始终可以比较给定集合的两个元素。也就是说,a
两个集合之间的一个自然比较是有一个举个例子:假设您想按每个集合的第一个元素对集合列表进行排序。问题是Python集或frozenset没有第一个元素。他们没有自己的秩序感。集合是没有重复元素的无序集合

此外,list.sort会对列表进行适当排序

如果只使用a.sort而不传递任何键参数,那么说set_a 从文档中:

set是,set举个例子:假设您想按每个集合的第一个元素对集合列表进行排序。问题是Python集或frozenset没有第一个元素。他们没有自己的秩序感。集合是没有重复元素的无序集合

此外,list.sort会对列表进行适当排序

如果只使用a.sort而不传递任何键参数,那么说set_a 从文档中:

set请提供一个你不能做的代码示例,然后我们可以提供一个如何做的代码示例。好的,我在某些情况下理解这个请求。但我到底需要什么样的代码示例呢。关于这个问题,代码示例可以澄清的混淆之处是什么?我非常具体。可能重复的请提供一个你不能做的代码示例,然后我们可以提供一个如何做的代码示例。好的,所以我在某些情况下理解这个请求。但我到底需要什么样的代码示例呢。关于这个问题,代码示例可以澄清的混淆之处是什么?我说得很具体。可能是重复的
a = {1, 2, 3}
b = {4, 5, 6}
In [10]: def f(some_set):
   ...       return max(some_set)
   ...

In [11]: sorted([{1, 2, 3, 999}, {4, 5, 6}, {7, 8, 9}], key=f)
Out[11]: [{4, 5, 6}, {7, 8, 9}, {1, 2, 3, 999}]
>>> a = {2, 3, 1}
>>> b = {6, 9, 0, 1}
>>> c = {0}
>>> i = [b, a, c]
>>> i.sort(key=len)
>>> i
[{0}, {1, 2, 3}, {0, 9, 6, 1}]