栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python如何对集合列表进行排序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python如何对集合列表进行排序?

无论列表中有什么内容,元素的

__lt__
方法都是唯一参考的比较方法。对于集合,
a <b
意味着“
a
是”的适当子集,
b
不足以定义总顺序。这就是为什么结果通常是不确定的。可能是原始列表的任何排列,与实现恰好适用
__lt__
于哪些列表元素对一致。

如果对于列表中的每对集合,一个实际上是另一个的适当子集,则列表将从最小(基数)集合到最大集合进行排序。否则,无话可说。例如:

>>> sorted([{5, 6}, {3, 4}, {5}, {3}])  # nothing changes[{5, 6}, {3, 4}, {5}, {3}]

发生的情况是未定义实现细节的结果。自从我撰写本文以来

list.sort()
,我知道在这种情况下会发生什么,但是不能保证总是这样工作:

首先,实现询问“是

{3, 4} < {5, 6}
”。否,因此前两个元素的顺序与已经排序一致。接下来询问“是
{5} < {3,4}
?”。否,因此前三个元素似乎已经被排序。最后,它询问“是
{3} <{5}
?”。再没有,因此原始列表的整个顺序与已经排序的顺序是一致的,并且没有任何变化。

将来的实现可能例如询问“是

{5} < {5, 6}
?”。在某个时候,并且由于“是”,所以决定
{5}
需要出现在之前
{5,6}
。因此,结果根本没有定义。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号