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

Python-リスト内の連続する文字列をグループ化する


リストに存在する文字列の連続する要素をグループ化する必要がある場合、「groupby」と「yield」を使用するメソッドが定義されます。

以下は同じもののデモンストレーションです

from itertools import groupby

def string_check(elem):
   return isinstance(elem, str)

def group_string(my_list):

      for key, grp in groupby(my_list, key=string_check):
         if key:
            yield list(grp)
         else:
            yield from grp
my_list = [52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]

print("The list is :")
print(my_list)

my_result = [*group_string(my_list)]

print("The result is:")
print(my_result)

出力

The list is :
[52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]
The result is:
[52, 11, ['py', 'th', 'on'], 11, 52, ['i', 's'], 18, ['f', 'un'], 99]

説明

  • 「string_check」という名前のメソッドが定義されています。このメソッドは、リストをパラメーターとして受け取り、それが特定のインスタンスタイプに属しているかどうかを確認します。

  • 「group_string」という名前の別のメソッドが定義されています。このメソッドは、リストをパラメーターとして受け取り、yieldを使用して「groupby」メソッドを使用して出力を返します。

  • メソッドの外部では、リストが定義され、コンソールに表示されます。

  • 「group_string」が呼び出され、結果が変数に割り当てられます。

  • これは、コンソールに出力として表示されます。


  1. Pythonの文字列のリストから数値を抽出する

    データ操作にPythonを使用しているときに、要素が固定パターンの文字と数字の組み合わせであるリストに出くわす場合があります。この記事では、将来の計算に使用できる文字から数字を分離する方法を説明します。 分割あり 分割関数は、区切り文字として扱われる文字を使用して文字列を分割します。以下のプログラムでは、リスト要素の文字とテキストの間の区切り文字としてハイフンが使用されています。これをforループと一緒に使用して、それぞれをキャプチャします 例 listA = ['Mon-2', 'Wed-8', 'Thu-2', 'Fri-7'

  2. Pythonで文字列のリストを並べ替える方法は?

    リストを適切に並べ替える、つまりリスト自体を並べ替え、そのリスト自体の順序を変更するには、文字列のリストでsort()を使用できます。たとえば、 >>> a = ["Hello", "My", "Followers"] >>> a.sort() >>> print a ['Followers', 'Hello', 'My'] 元のリストをそのまま維持し、代わりにソートされた要素の新しいリストが必要な場合は、sorted(list)を