解決済み: リスト python の重複の名前を変更する

リスト内の重複の名前を変更することは、重複を特定して名前を変更する方法を決定する必要があるため、解決が難しい問題になる可能性があります。 リストに多くの要素が含まれている場合、または要素が複雑なオブジェクトである場合、これは特に困難な場合があります。 さらに、重複の名前を変更すると、要素が適切に機能し続けるために、要素の元の名前に依存するコードの他の部分を変更する必要がある場合があります。

def rename_duplicates(lst): 
    seen = set() 
    new_lst = [] 

    for item in lst: 
        if item not in seen: 
            seen.add(item) 
            new_lst.append(item) 
        else: 
            new_item = item + '_1'   # append a suffix to make it unique  

            while new_item in seen:   # increment the suffix until it's unique  
                suffix = int(new_item.split('_')[-1]) + 1   # get the last number and add one to it  
                new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), suffix)

            seen.add(new_item)     # add the newly created item to the set of seen items  
            new_lst.append(new_item)     # append the newly created item to the list

    return new

_lst

# このコードは、引数としてリストを受け取る rename_duplicates という関数を定義します。
def rename_duplicates(lst):

# 次に、seen という空のセットと new_lst という空のリストを作成します。
見た= set()
new_lst = []

# 次に、リスト内のアイテムを繰り返し処理し、それらが既に表示されているアイテムのセットに含まれているかどうかを確認します。
lst の項目の場合:
if item not in seen: # そうでない場合は、それを見たアイテムのセットに追加し、新しいリストに追加します。
see.add(アイテム)
new_lst.append(item) # 存在する場合、名前に接尾辞 (たとえば、'_1') を追加してそのアイテムの一意のバージョンを作成し、この新しく作成されたアイテムが既に表示されているアイテムのセットにあるかどうかを確認します。

else: # そうであれば、そのアイテム名の未使用バージョンが見つかるまで接尾辞を増やし、実行の最後にこの新しいリストを返す前に、この新しく作成されたアイテムを表示されたアイテムのセットと新しいリストの両方に追加します。

new_item = アイテム + '_1'

while new_item in seen: # 一意になるまでサフィックスをインクリメント

suffix = int(new_item.split('_')[-1]) + 1 # 最後の番号を取得して XNUMX を追加

new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), サフィックス)

見た.追加(新しい

Python のリスト

Python のリストは、最も一般的に使用されるデータ構造の XNUMX つです。 それらは、他のリストを含む任意のタイプのアイテムのコレクションを格納するために使用されます。 リストは変更可能です。つまり、作成後に変更できます。 また、インデックス作成、スライス、連結などの操作もサポートしています。

Python でリストを作成するには、角括弧を使用し、各項目をコンマで区切ります。

my_list = [1, 2, 3]

インデックスを使用して、リスト内の個々の要素にアクセスできます。
my_list[0] # 1 を返す
my_list[1] # 2 を返す
my_list[2] # 3 を返す

負のインデックスを使用して、リストの末尾から要素にアクセスすることもできます。

my_list[-1] # 3 (最後の要素) を返す

append() メソッドを使用してリストに項目を追加できます。

my_list.append(4) # リストの最後に 4 を追加

remove() または pop() メソッドを使用して、リストからアイテムを削除できます。

my_list.remove(3) # リストから 3 を削除

my_list.pop(2) # リストから 2 (XNUMX 番目の要素) を削除して返します

Python のリスト内の重複の名前を変更する

Python でリスト内の重複の名前を変更することは、リストを扱うときの一般的なタスクです。 リスト内の重複する要素を一意の値に置き換える必要があります。 これは set() 関数を使用して行うことができます。この関数は、リストからすべての重複要素を削除し、一意の要素のみを含む新しいリストを返します。 set() 関数を使用して、古い値から新しい値へのマッピングを提供することで、重複の名前を変更することもできます。 たとえば、数字のリストがあり、すべての重複をそれぞれの正方形に置き換えたい場合は、次のコードを使用できます。

# 空の辞書を作成する
マッピング = {}

# 元のリストを繰り返す
my_list のアイテム:
# アイテムが辞書に既に存在するかどうかを確認します
アイテムがマッピングにない場合:
# そうでない場合は、辞書に追加し、その正方形を値として割り当てます
マッピング[アイテム] = アイテム * アイテム

# 空の結果リストを作成する
結果リスト = []

# 元のリストをもう一度反復し、各要素を my_list の i の辞書からの正方形で置き換えます: result_list.append(mapping[i])

# 結果出力 print(result_list)

関連記事:

コメント