SORU
21 EYLÜL 2009, PAZARTESİ


İki şekilde ters göster/

Kim kime, eğer öyleyse -- ^ Alice konuşuyor izlemek lazım python bu santral işi yapıyorum . Bob, Bob ^ -- anlamına gelir . Alice.

Evet, iki karma haritalar doldurmak olabilir, ama eğer biri ile bunu yapmak için bir fikir var mı merak ediyorum.

Ya da başka bir veri yapısı öneririz.

Birden fazla görüşme yok. Hadi bu Müşteri Hizmetleri çağrı merkezi ki, Alice santrali aradığında, sadece Bob ile konuşmaya gidiyor. Cevaplarını da sadece onunla gidin.

CEVAP
7 Kasım 2012, ÇARŞAMBA


dict sınıflara ve istediğiniz mantık ekleyerek kendi sözlük türü oluşturabilirsiniz. Burada temel bir örnek:

class TwoWayDict(dict):
    def __setitem__(self, key, value):
        # Remove any previous connections with these values
        if key in self:
            del self[key]
        if value in self:
            del self[value]
        dict.__setitem__(self, key, value)
        dict.__setitem__(self, value, key)

    def __delitem__(self, key):
        dict.__delitem__(self, self[key])
        dict.__delitem__(self, key)

    def __len__(self):
        """Returns the number of connections"""
        return dict.__len__(self) // 2

Ve bu gibi çalışır:

>>> d = TwoWayDict()
>>> d['foo'] = 'bar'
>>> d['foo']
'bar'
>>> d['bar']
'foo'
>>> len(d)
1
>>> del d['foo']
>>> d['bar']
Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
KeyError: 'bar'

Tüm vakalara bakmak istemedim eminim, ama bu başlangıç için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • MkElite

    MkElite

    13 NİSAN 2012
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010