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

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012