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

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011
  • MotoManTV

    MotoManTV

    10 Aralık 2009