【发布时间】:2012-05-11 19:47:54
【问题描述】:
这是我目前所拥有的:
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的实例,您的代码已经失败 -
还有我认为的其他各种。关键是,我是否需要测试每个可能的集合,还是有更强大的方法来做到这一点?
-
只需对其进行迭代,并确保调用者传递的是有序集合。
标签: python collections python-2.7