set(list_of_objects)
sadece çiftleri kaldıracaktır ki, bir nesnenin bir özgünlük tanımlamak gerekir olduğunu.
Bunu yapmak için nesneyi yıkanabilir hale getirmeniz gerekir.
http://docs.python.org/glossary.html#term-hashable
rağmen, büyük olasılıkla yalnızca __eq__
yöntemi tanımlamak gerekir: Burada nasıl, hem __hash__
ve __eq__
yöntemi tanımlamak gerekir.
DÜZENLEME: __eq__
yöntemi nasıl uygulanır?
Ben Nesnenizin benzersizliği tanımını belirtildiği gibi Biliyorsun gerekir
. Paylaşılan bir albümümüz var. Yazarın ismi ve birleşiminin benzersiz olduğu bir başlık var. (Stephen King'in yazdığı pek çok kitap ve The Shining adında bir çok kitap yazabiliriz, ama sadece bir kitap The Shining by Stephen King), sonra uygulama aşağıdaki gibidir: Benzer
def __eq__(self, other):
return self.author_name==other.author_name\
and self.title==other.title
, bu bazen __hash__
yöntemi uygulamak nasıl:
def __hash__(self):
return hash(('title', self.title,
'author_name', self.author_name))
kontrol edebilirsiniz o aynı yazar ve başlık, kitap ile 2 kitap listesi oluşturursanız nesneler ile aynı olacaktır (is
operatörüyle) ve eşit (==
operatörüyle). Ayrıca, set()
kullanıldığında, bir kitap kaldıracaktır.
DÜZENLEME: Bu benimkilerden biri eski anwser, ama ancak şimdi son paragrafta çizili olarak düzeltilir hata olduğunu fark: is
ile karşılaştırıldığında True
vermeyecektir aynı hash()
nesneleri . Bununla birlikte, nesneyi, setin öğeleri olarak veya sözlükte anahtar olarak kullanmayı düşünüyorsanız, nesnenin kullanılabilirliği kullanılır.
Adım 1. arayın. Bu tam ifade, Python programlama sınıfındaki her sömestrde kullanılır. Lütfen ara. –
__Orjinali mi, ne anlama geliyor? çünkü listenin order_adı sırasını değiştirmek istediğinizi söylemişseniz, listede yinelenen bir nesnenin ilk oluşumu orijinal haktır? – mouad
Evet, sadece orijinal hariç tüm çoğaltmaları kaldırmak istedim. @ S.Lott, bir ton arama yaptım ve hiçbir şey bulamadım, bu yüzden buraya geldim. Bu kesin sorunu ele alan bir örnek gösterebilir misiniz? Onu gördüğüme sevinirim. – imns