私の目的は、リスト内の「IDENTIFIER」の後の単語を検索することです。リスト内のリストまたはリスト内のリストのみを持つことができるリストとして入力があります。基本的に、リスト内にいくつのリストが存在するかを見つけて、チェックを実行する必要があります。
以下に示すように、リスト内にリストがあります
[['CLASS', 'class'], ['CLASS', 'animal'], ['LCURLY', '{'], [[['INT', 'int'], ['IDENTIFIER', 'a'], ['SEMICOLON', ';']], [['BOOL', 'bool'], ['IDENTIFIER', 'x'], ['SEMICOLON', ';']]], ['RCURLY', '}']]
IDENTIFIER という単語の後の次の要素を検索したい。つまり、「a」と「x」を探しています。これは、リスト内のリスト内のリストの場合です。これはネストされたリストの 2 つのグループです。
しかし、次のようなリストもあります。
[['INT', 'int'], ['IDENTIFIER', 'e'], ['SEMICOLON', ';']]
これは、リスト内のリストのみの場合です。ここで、「e」であるIDENTIFIERの後に単語を検索したいと思います。
したがって、基本的には、リスト内にリストがあるかどうかを検索する方法と、リスト内にリストがない場合はチェックを実行する方法を知りたいだけです。私が考えることができるのは、リストを渡す関数を作成し、リストがまだ存在する場合はリスト内にリストが存在するかどうかを確認し、関数を再度(再帰的に)呼び出し、そのようなリストが存在しない場合はチェックを実行することだけです.
これは正しい方法ですか?これよりも良い提案はありますか。