Pythonでのインデックスの重複を処理する方法


  1. リストの要素を順に処理し、重複したインデックスを見つける方法:
def find_duplicate_indexes(lst):
    duplicate_indexes = []
    for i, value in enumerate(lst):
        if lst.count(value) > 1:
            duplicate_indexes.append(i)
    return duplicate_indexes
# 使用例:
my_list = [1, 2, 3, 4, 2, 5, 6, 4]
duplicates = find_duplicate_indexes(my_list)
print(duplicates)  # [1, 4, 7]
  1. リストの要素を辞書として処理し、重複したインデックスを見つける方法:
def find_duplicate_indexes(lst):
    index_dict = {}
    duplicate_indexes = []
    for i, value in enumerate(lst):
        if value in index_dict:
            duplicate_indexes.extend([index_dict[value], i])
        else:
            index_dict[value] = i
    return duplicate_indexes
# 使用例:
my_list = [1, 2, 3, 4, 2, 5, 6, 4]
duplicates = find_duplicate_indexes(my_list)
print(duplicates)  # [1, 4, 7]
  1. collectionsモジュールのCounterクラスを使用して重複した要素を見つける方法:
from collections import Counter
def find_duplicate_indexes(lst):
    counter = Counter(lst)
    duplicate_indexes = [i for i, count in counter.items() if count > 1]
    return duplicate_indexes
# 使用例:
my_list = [1, 2, 3, 4, 2, 5, 6, 4]
duplicates = find_duplicate_indexes(my_list)
print(duplicates)  # [2, 4]

これらはいくつかの一般的な方法ですが、状況や要件に応じて他の方法もあります。以上の方法を参考にして、リスト内の重複したインデックスを処理するコードを作成することができます。