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

リスト内の類似した部分文字列のPythonグループ化


このチュートリアルでは、リストから類似したサブストリングをグループ化するプログラムを作成します。それをより明確に理解するために例を見てみましょう。

入力

strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2',
'javascript-1']

出力

[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'], ['python-1', 'python-2'],
['javascript-1']]

groupbyを使用します itertoolsのメソッド 問題を解決するためのモジュール。 グループ化 メソッドは、すべての類似した文字列をiterオブジェクトにグループ化します。指定されたリストに対して、文字列を-で分割し、文字列の最初の部分を groupbyに渡します。 メソッド。

この問題の解決に必要な手順を見てみましょう。

  • 文字列のリストを初期化します。
  • itertoolsモジュールをインポートします。
  • 空のリストを初期化します。
  • 次に、文字列とラムダ関数を itertools.groupbyに渡します。 メソッド。
  • ラムダ関数は、文字列を-
  • で分割した後、文字列の最初の部分を返す必要があります
  • groupby メソッドは、要素とそのグループを含むタプルのリストを返します。
  • すべての反復で、類似した要素のグループをリストに変換します。
  • 空のリストにリストを追加します。
  • 結果を印刷します。

# importing the itertools module
import itertools
# initializing the strings
strings = ['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript', 'python-1', 'python-2', 'javascript-1']
# empty list
result = []
# iterator
# lambda function will return first part from the string
iterator = itertools.groupby(strings, lambda string: string.split('-')[0])
# iterating over the result
# element and its group
for element, group in iterator:
   # appending the group by converting it into a list
   result.append(list(group))
# printing the result
print(result)

出力

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

[['tutorials-python', 'tutorials-c', 'tutorials-java', 'tutorials-javascript'],
ython-1', 'python-2'], ['javascript-1']]

結論

チュートリアルで疑問がある場合は、コメントセクションでそれらについて言及してください。


  1. Pythonのリストでの要素の繰り返し

    リスト内の値を繰り返す必要があるシナリオがあります。この値の重複は、Pythonで次の方法で実現できます。 ネストされたforループの使用 これは、各要素を選択し、内側のforループを通過して複製を作成し、両方を外側のforループに渡すという単純なアプローチです。 例 # Given list listA = ['Mon', 'Tue', 9, 3, 3] print("Given list : ",listA) # Adding another element for each element Newlist = [i for i i

  2. Pythonリストに同様の値を複数回追加する

    リストに同じ番号または文字列を複数回表示する必要がある場合があります。一部の計算の目的で、これらの数値または文字列を生成する場合もあります。 Pythonには、これを実現するのに役立ついくつかの組み込み関数が用意されています。 使用* これは最もよく使われる方法です。ここでは、*演算子を使用して、演算子の前に記載されている文字の繰り返しを作成します。 例 given_value ='Hello! ' repeated_value = 5*given_value print(repeated_value) 上記のコードを実行すると、次の結果が得られます。 Hello! Hel