Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストの文字列要素を連結することにより、指定された文字列を形成できるかどうかを確認します


リストに存在する多数の文字列から必要な文字列を形成できるかどうかを確認する必要がある場合があります。また、必要な文字列を取得するために結合する必要のある文字列がリストにどのような順序で存在するかは重要ではありません。

順列あり

itertoolsから、さまざまな順序でリスト内の文字列の可能な組み合わせを提供する順列関数を使用できます。与えられた組み合わせが必要な文字列と一致するとすぐに、文字列を形成できると結論付けます。

from itertools import permutations

chk_str = 'balloon'
Alist = ['fly','on', 'o', 'hot', 'ball', 'air']

def findstring(strchk, biglist):
   for i in range(2, len(biglist) + 1):
      for perm in permutations(biglist, i):
         if ''.join(perm) == strchk:
         return True
   return False

# Using the function
if(findstring(chk_str,Alist)):
   print("String can be formed.")
else:
   print("String can not be formed.")

出力

上記のコードを実行すると、次の結果が得られます-

String can be formed.

正規表現を使用

reモジュールは、正規表現パターンを指定して可能な文字列を作成するコンパイル関数を提供します。次に、チェックする文字列と比較されます。結果がnoneでない場合は、文字列を形成できると結論付けることができます。

import re

chk_str = 'balloon'
Alist = ['fly','on', 'o', 'hot', 'ball', 'air']

def findstring(strchk, biglist):
   r = re.compile("(?:" + "|".join(biglist) + ")*$")
   if r.match(strchk) != None:
      return True
   return False

# Using the function
if(findstring(chk_str,Alist)):
   print("String can be formed.")
else:
   print("String can not be formed.")

出力

上記のコードを実行すると、次の結果が得られます-

String can be formed.

  1. Pythonのリストの特定のリストにリストが存在するかどうかを確認します

    リストはネストできます。つまり、リストの要素自体がリストです。この記事では、特定のリストが外側の大きなリストの要素として存在するかどうかを確認する方法を説明します。 内で これは非常に単純で簡単な方法です。 in句は、内側のリストが大きなリストの要素として存在するかどうかを確認するためだけに使用します。 例 listA = [[-9, -1, 3], [11, -8],[-4,434,0]] search_list = [-4,434,0] # Given list print("Given List :\n", listA) print("list to S

  2. Pythonのインデックスでリストの要素を検索する

    2つのリストを考えてみましょう。 2番目のリストの要素は、最初のリストの要素のインデックス位置と見なす必要がある数値です。このシナリオでは、以下のPythonプログラムがあります。 マップとgetitemを使用 getitemマジックメソッドを使用してリストアイテムにアクセスできます。これをmap関数と一緒に使用できるため、2番目のリストの要素をインデックスとして取得する最初のリストから結果を取得できます。 例 listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] listB =