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

Python –要素のグループ化された連続範囲インデックス


リスト内の要素のインデックスのグループ化された連続範囲を取得する必要がある場合、defaultdictが作成されます。 「groupby」メソッド、「len」メソッド、「list」メソッド、および「append」メソッドとともに、単純な反復が使用されます。

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

from itertools import groupby
from collections import defaultdict

my_list = [63, 12, 84, 91, 52, 39, 25, 27, 20, 11, 0,9]

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

my_index = 0
my_result = defaultdict(list)

for key, sub in groupby(my_list):
   element = len(list(sub))
   my_result[key].append((my_index, my_index + element - 1))
   my_index += element

print("The resultant dictionary is : ")
print(my_result)

出力

The list is :
[63, 12, 84, 91, 52, 39, 25, 27, 20, 11, 0, 9]
The resultant dictionary is :
defaultdict(, {63: [(0, 0)], 12: [(1, 1)], 84: [(2, 2)], 91: [(3, 3)], 52: [(4, 4)], 39: [(5, 5)], 25:
[(6, 6)], 27: [(7, 7)], 20: [(8, 8)], 11: [(9, 9)], 0: [(10, 10)], 9: [(11, 11)]})

説明

  • 必要なパッケージが環境にインポートされます。

  • 整数のリストが定義され、コンソールに表示されます。

  • 値は0に初期化されます。

  • デフォルトの辞書が作成されます。

  • リストは、「groupby」メソッドを適用することによって繰り返されます。

  • 初期化された値は空の辞書に追加されます。

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


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

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

  2. Pythonで範囲内の要素を削除する

    Pythonから単一の要素を削除するのは、要素のインデックスとdel関数を使用することで簡単です。ただし、インデックスのグループの要素を削除する必要がある場合があります。この記事では、インデックスリストで指定されている要素のみをリストから削除する方法について説明します。 sortとdelの使用 このアプローチでは、削除が発生する必要があるインデックス値を含むリストを作成します。リストの要素の元の順序を保持するために、それらを並べ替えて逆にします。最後に、これらの特定のインデックスポイントの元の指定されたリストにdel関数を適用します。 例 Alist = [11,6, 8, 3, 2] #