は、私がこれまで持っているものです。任意のコレクションがあれば、注文されているかどうかを判断する方法はありますか?ここ
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による型チェックから躊躇しています。
あなたのコードは既に 'collections.OrderedDict'のインスタンスでは失敗します –
そして私が想定している他の様々なもの。ポイントは、すべてのコレクションをテストする必要があるのか、それとももっと堅牢な方法があるのでしょうか? – cammil
これを繰り返して、呼び出し元が順序付けされたコレクションを渡していることを確認してください。 – Marcin