SORU
1 Kasım 2011, Salı


Python listeler yinelenen girdileri kaldırma

Yani hemen hemen bir liste birden fazla kopyası vardır ve eğer varsa onları kaldırır olmadığını kontrol etmek için bir program yazmam gerekiyor ve/kaldırıldı yinelenen olmayan öğeleri içeren yeni bir liste döndürür. Bu ama ne yapacağımı bilmiyorum açıkçası.

def remove_duplicates():
    t = ['a', 'b', 'c', 'd']
    t2 = ['a', 'c', 'd']
    for t in t2:
        t.append(t.remove())
    return t

CEVAP
1 Kasım 2011, Salı


Öğeleri eşsiz bir koleksiyon için ortak bir yaklaşım set kullanmaktır. Ayarlarsıralanmamışkoleksiyonlarıfarklınesneler. Herhangi bir iterable bir set oluşturmak için, sadece dahili set() fonksiyonu ile iletebilirsiniz. Eğer daha sonra gerçek bir listesini tekrar gerekiyorsa, benzer şekilde list() işlevi ayarlamak iletebilirsiniz.

Aşağıdaki örnek, yapmaya çalıştığınız her neyse kapsamalıdır:

>>> t = [1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> t
[1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> list(set(t))
[1, 2, 3, 5, 6, 7, 8]
>>> s = [1, 2, 3]
>>> list(set(t) - set(s))
[8, 5, 6, 7]

Örnek sonuç gördüğünüz gibi, orijinal düzeni korunur. Yukarıda da belirtildiği gibi, sipariş kaybolur koleksiyonları sırasız, kendilerini ayarlar. Bir dizi listesine geri dönüştürürken, keyfi bir düzen oluşturuldu.

Eğer sipariş sizin için önemli ise, o zaman daha farklı bir yöntem kullanmak zorunda olacak. This question daha ayrıntılı olarak bu konuyu kapsar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dope2111

    dope2111

    29 HAZİRAN 2009
  • GUN-TIME with Brandon

    GUN-TIME wit

    3 ŞUBAT 2009
  • Attempts at least

    Attempts at

    1 Ocak 2007