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

  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010