リストの内容を特定のパターンと一致させ、一致以外のすべてを含む別のリストを作成する必要があります。つまり、除外リストを作成しようとしています。
これで、1 つのパターン マッチで簡単になりました。しかし、それ以上になると難しくなります。
例を見てみましょう:
Lmain=[arc123, arc234,xyz111,xyz222,ppp999,ppp888]
for count in range(len[Lmain]):
if Pattern matches Lmain[i]:
Pass
else:result.append(Lmain[i])
ここで、 pattern = arc としましょう。私の結果は次のようになります。
result = [xyz111,xyz222,ppp999,ppp888]
これは単なるロジックであり、一致を見つけるために通常の expr を使用します。
2 つのパターンがある場合、上記のロジックをループで使用します。
Pattern=['arc','xyz']
for pat in Pattern:
if pat matches Lmain[i]:
Pass
else:result.append(Lmain[i])
これは間違った結果をもたらします
result = [xyz111,xyz222,ppp999,ppp888,arc123,arc234,ppp999,ppp888]
したがって、上記のロジックが機能しないことがわかります。
私の計画:
最初に、結果が得られる最初のパターンの除外リストを見つけます。
result = [xyz111,xyz222,ppp999,ppp888]
2 番目のパターンについては、上記の結果を調べる必要があります。
if Pattern matches Result[i]:
Pass
else:result_final.append(Result[i])
上記のロジックを実装するには、再帰を使用する必要があると思います。では、どうすればよいのでしょうか。また、ユーザーが入力しようとしているパターンの数もわかりません。1 つまたは複数にすることができます。
誰でも論理的なアイデアを持っているので、共有してください。