これが私がこれまでに持っているものです:
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")
これを行うためのはるかに良い方法はありますか?
NB:並べ替えではなく、順序付けされていることを意味します。
動機:
順序付けられたコレクションを反復処理したい。例えば
def most_important(priorities):
for p in priorities:
print p
この場合、優先順位が順序付けられているという事実が重要です。それがどのようなコレクションであるかではありません。私はここでダックタイピングを生きようとしています。私は、Pythonistas による型チェックをよく思いとどまらせられてきました。