的key
-argument到list.sort
或sorted
可以用於你需要的方式對其進行排序,首先你需要確定你如何要訂購的類型,最簡單的(也可能最快)與類型作爲鍵的字典和秩序價值
# define a dictionary that gives the ordering of the types
priority = {int: 0, float: 0, str: 1, bool: 2, list: 3}
爲了使這項工作可以使用tuples
和lists
首先比較的第一個元素進行比較,事實上,如果相等比較的第二個元素,如果這等於比第三(依此上)。
# Define a function that converts the items to a tuple consisting of the priority
# and the actual value
def priority_item(item):
return priority[type(item)], item
最後,你可以整理你的輸入,我會重新洗牌,因爲它已經排序(據我理解你的問題):
>>> l = [1, 2.0, "titi", True, [2, 3, 4, [3, [3, 4]], 5]]
>>> import random
>>> random.shuffle(l)
>>> print(l)
[True, [2, 3, 4, [3, [3, 4]], 5], 'titi', 2.0, 1]
>>> # Now sort it
>>> sorted(l, key=priority_item)
[1, 2.0, 'titi', True, [2, 3, 4, [3, [3, 4]], 5]]
,你想究竟它是排序? –
半開玩笑的答案:切換到Python 2.7,其中允許比較整數和字符串等。 – Kevin
Teemu詢問 - 您的預期產量是多少? –