オブジェクトがリストかタプルか(文字列ではない)を確認するにはどうすればいいですか? 質問する

オブジェクトがリストかタプルか(文字列ではない)を確認するにはどうすればいいですか? 質問する

listこれは、入力が/ tuple- であり、 ではないことを確認するために私が通常行うことです。関数が誤ってオブジェクトを渡し、ターゲット関数がが実際には または であると想定して を実行するというstrバグに何度も遭遇したからです。strfor x in lstlstlisttuple

assert isinstance(lst, (list, tuple))

私の質問は、これを実現するより良い方法はあるかということです。

ベストアンサー1

Python 2 のみ (Python 3 ではない):

assert not isinstance(lst, basestring)

list実際にこれが必要なのです。そうしないと、リストのように動作するがまたはのサブクラスではない多くのものを見逃すことになりますtuple

おすすめ記事