【发布时间】:2017-03-25 09:06:44
【问题描述】:
我有一个这样的自定义列表:
mylist1= [-2,0,1,1.5,2,3,6,8,5,'a','-%3','A',True,False,list(),tuple(),dict()]
这里我有这个列表中的大部分数据类型,所以我只是尝试对它们进行排序,看看它是如何对它们进行排序的。
它给了我这样的输出:
print sorted(mylist1)
[-2, 0, False, 1, True, 1.5, 2, 3, 5, 6, 8, {}, [], '-%3', 'A', 'a', ()]
这里我们可以看到{}放在[]之前,()最末端。
我搜索到的所有__cmp__ 都在这个mergesort 中运行。
More info
我有两个问题:
问题1:
我只是想知道在 python 中这种不同数据类型的值的优先级是如何定义的
问题2:
如果我在我的列表上方包含set(),它将不会运行这种排序。为什么这样?它显示TypeError: can only compare to a set
【问题讨论】:
-
为什么要投反对票??在搜索了很多东西后,我问了一个有效的问题。如果您知道答案,请张贴而不是投反对票
-
不要一次问多个问题。如果您进行研究,您会发现现有的答案,例如stackoverflow.com/questions/3270680/… 和 2,stackoverflow.com/questions/4084243/…
-
@jonrsharpe 谢谢,但这是同一个列表的相关问题,所以我问了。
-
我不确定你想说什么。您的两个问题都在其他地方得到了回答;尤其是第二个很容易找到答案,因为您有一条错误消息要搜索。这不是再次询问的好理由。
标签: python python-2.7 sorting