这是我到目前为止有:鉴于任意收集,有没有办法判断它是否有序?
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