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

  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007