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

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • picster

    picster

    20 NİSAN 2006