Çözüldü: listedeki kopyaları yeniden adlandırın python

Bir listedeki yinelenenleri yeniden adlandırmak, yinelenenleri tanımlamanızı ve ardından bunları nasıl yeniden adlandıracağınıza karar vermenizi gerektirdiğinden çözülmesi zor bir sorun olabilir. Liste birçok öğe içeriyorsa veya öğeler karmaşık nesnelerse, bu özellikle zorlayıcı olabilir. Ek olarak, kopyaları yeniden adlandırmak, düzgün çalışmaya devam etmeleri için kodunuzun öğelerin orijinal adlarına dayanan diğer bölümlerini değiştirmenizi gerektirebilir.

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

_st

# Bu kod, bir listeyi bağımsız değişken olarak alan rename_duplicates adlı bir işlevi tanımlar.
def rename_duplicates(lst):

# Ardından, görüldü adlı boş bir küme ve yeni_lst adlı boş bir liste oluşturur.
görüldü = set ()
yeni_list = []

# Daha sonra listedeki öğeler arasında yineleme yapar ve zaten görülen öğeler kümesinde olup olmadıklarını kontrol eder.
listedeki öğe için:
if öğe görülmedi: # Görülmediyse, onu görülen öğeler kümesine ekler ve yeni listeye ekler.
görüldü.add(öğe)
new_lst.append(item) # Varsa, ismine bir sonek (örn. '_1') ekleyerek o maddenin benzersiz bir sürümünü oluşturur ve bu yeni oluşturulan öğenin zaten görülen öğeler kümesinde olup olmadığını kontrol eder.

başka: # Eğer öyleyse, o öğe adının kullanılmayan bir sürümünü bulana kadar son eki artırır ve bu yeni oluşturulan öğeyi, yürütülmesinin sonunda bu yeni listeyi döndürmeden önce hem görülen öğeler kümesine hem de yeni listeye ekler.

new_item = öğe + '_1'

new_item görüldüğünde: # benzersiz olana kadar son eki artırın

sonek = int(new_item.split('_')[-1]) + 1 # son numarayı al ve ona bir tane ekle

new_item = '{}_{}'.format('_'.join(new_item.split('_')[:-1]), sonek)

görüldü.ekle(yeni

Python'daki Listeler

Python'daki listeler, en yaygın kullanılan veri yapılarından biridir. Diğer listeler de dahil olmak üzere herhangi bir türden olabilen bir öğe koleksiyonunu depolamak için kullanılırlar. Listeler değişkendir, yani oluşturulduktan sonra değiştirilebilirler. Ayrıca indeksleme, dilimleme ve birleştirme gibi işlemleri de desteklerler.

Python'da bir liste oluşturmak için köşeli parantezler kullanırsınız ve her öğeyi virgülle ayırırsınız:

listem = [1, 2, 3]

Dizinlerini kullanarak listedeki tek tek öğelere erişebilirsiniz:
my_list[0] #, 1 döndürür
my_list[1] #, 2 döndürür
my_list[2] #, 3 döndürür

Listenin sonundaki öğelere erişmek için negatif dizinleri de kullanabilirsiniz:

my_list[-1] #, 3 değerini döndürür (son öğe)

append() yöntemini kullanarak bir listeye öğe ekleyebilirsiniz:

my_list.append(4) # listenin sonuna 4 ekler

Remove() veya pop() yöntemlerini kullanarak bir listeden öğeleri kaldırabilirsiniz:

my_list.remove(3) # listeden 3 tanesini kaldırır

my_list.pop(2) # listeden 2'yi (üçüncü eleman) kaldırır ve döndürür

Python'da listedeki kopyaları yeniden adlandırın

Python'da listedeki kopyaları yeniden adlandırmak, listelerle uğraşırken sık yapılan bir görevdir. Bir listedeki yinelenen öğeleri benzersiz değerlerle değiştirmeyi içerir. Bu, tüm yinelenen öğeleri bir listeden kaldıran ve yalnızca benzersiz öğeler içeren yeni bir liste döndüren set() işlevi kullanılarak yapılabilir. set() işlevi, eski değerlerin yeni değerlerle eşlenmesini sağlayarak kopyaları yeniden adlandırmak için de kullanılabilir. Örneğin, bir sayı listeniz varsa ve tüm kopyaları ilgili kareleriyle değiştirmek istiyorsanız, aşağıdaki kodu kullanabilirsiniz:

# Boş bir sözlük oluştur
eşleme = {}

# Orijinal listeyi yineleyin
my_list'teki öğe için:
# Öğenin zaten sözlükte var olup olmadığını kontrol edin
öğe eşlemede değilse:
# Değilse sözlüğe ekleyin ve karesini değer olarak atayın
eşleme[öğe] = öğe * öğe

# Boş bir sonuç listesi oluştur
sonuç_listesi = []

# Orijinal listeyi yeniden yineleyin ve her öğeyi, listemdeki i için sözlükteki karesiyle değiştirin: result_list.append(mapping[i])

# Sonuçları yazdır print(result_list)

İlgili Mesajlar:

Leave a Comment