這是我到目前爲止有:鑑於任意收集,有沒有辦法判斷它是否有序?
def is_ordered(collection):
if isinstance(collection, set):
return False
if isinstance(collection, list):
return True
if isinstance(collection, dict):
return False
raise Exception("unknown collection")
是否有更好的方法來做到這一點?
注:我的意思是有序和不是排序。
動機:
我要遍歷的有序集合。例如
def most_important(priorities):
for p in priorities:
print p
在這種情況下,優先級排序的事實很重要。它不是什麼樣的收藏品。我想在這裏住鴨子打字。我經常被Pythonistas的類型檢查阻止。
你的代碼已經失敗了'collections.OrderedDict'的實例 –
和其他我假設的其他人。關鍵是,我是否需要測試每一個可能的集合,還是有更強大的方法來做到這一點? – cammil
只需對其進行迭代,並確保調用者正在傳遞一個有序集合。 – Marcin