Bir sete bir şey eklemenin açık/öz bir yolu olup olmadığını ve 2x karma olmadan eklendiğini kontrol etmeyi merak ediyorum & aramaları.Python: Bir öğeye 2x (karma, arama) olmadan bir öğenin eklenip eklenmediğini kontrol etme
bu ne yapabilir, ama vardır 2x karma en öğenin
aitif item not in some_set: # <-- hash & lookup
some_set.add(item) # <-- hash & lookup, to check the item already is in the set
other_task()
Bu, tek karma ve arama ile çalışır ama biraz çirkin.
some_set_len = len(some_set)
some_set.add(item)
if some_set_len != len(some_set):
other_task()
Python'un seti API kullanarak bunu yapmak için daha iyi bir yolu var mı?
@PadraicCunningham: Sorun, other_task() 'dır. – DSM
Belki kendi set sınıfınızı uygulamak zorunda kalacaksınız. – kist
'add' yöntemi zaten sizin için bu testi yapıyor, sadece ara. –