2013-05-03 10 views
26

type(obj) - >listを使用して、オブジェクトがPythonのリストであるかどうかを検出する方法はありますか?オブジェクトがpythonのリストのリストかどうかを確認しますか?

しかし、オブジェクトのように、フォームのリストのリストであれば、どのように検出することができます:あなたはあなたのリスト内のすべてのの項目がリストされ、あなたが何かを行うことができことを確認するには

[['a','b']['a','b'][][]] 

答えて

3

このように:

if all(isinstance(i, list) for i in lst): 
    # All of the items are lists 
  • isinstance(i, list)type(i) == type(list)type(i) == list)を書くより良い方法です。
  • all()は、シーケンス内のすべての項目がTrueの場合はTrueを返します。 Trueでない場合はFalseが返されます。
+0

'type(i)== type(list)'新しい方はとにかく動作します。 : - P 'タイプ(i)はリストです'いくつかのメリットを持つことができます。 * exact *型をテストします(サブクラスは許されません)。 –

43

使用isinstance()は、特定のタイプをチェックする:全て要素が特定のタイプであるかどうかをテストするために使用all()

>>> isinstance([], list) 
True 

all(isinstance(elem, list) for elem in list_of_lists) 

all()短絡します。いずれかのテストでFalseが返された場合、ループは終了し、Falseが返されます。 1つの要素を除くすべての要素がTrueを返す場合のみ、all()は繰り返し可能な要素のすべての要素を調べる必要があります。

関連する問題