SORU
26 ŞUBAT 2011, CUMARTESİ


Neden listesi't güvenli "al" sözlük gibi yöntem değil mi?

>>> d = {'a':'b'}
>>> d['a']
'b'
>>> d['c']
KeyError: 'c'
>>> d.get('c', 'fail')
'fail'

>>> l = [1]
>>> l[10]
IndexError: list index out of range

CEVAP
26 ŞUBAT 2011, CUMARTESİ


Sonuçta muhtemelen yok kasa .get yöntem çünkü dict ilişkilendirilebilir koleksiyonu değerleri ile ilişkili isimler) nereye verimsiz kontrol edin eğer bir anahtar varsa (ve dönüş) olmadan atma bir istisna olsa süper önemsiz önlemek için istisnalar erişme liste öğeleri (len yöntem çok hızlı). .get yöntemi bir değer adı ile ilişkilendirilmiş sorgu, doğrudan sözlüğünde 37 öğe listenizi istediğin ne olabilir ki () erişim sağlar.

Tabii ki, kolayca kendiniz uygulayabilirsiniz:

def safe_list_get (l, idx, default):
  try:
    return l[idx]
  except IndexError:
    return default

__main__ __builtins__.list kurucu üzerine monkeypatch olabilir ama çoğu kod kullanmaz beri daha az yaygın bir değişiklik olurdu. Eğer sadece listeleri kendi kodu tarafından oluşturulan bu kullanmak istedim sadece list alt get yöntemi ekleyebilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ☆ SUB4SUB CENTER! ☆ spam here

    ☆ SUB4SUB

    22 ŞUBAT 2010
  • FailArmy U

    FailArmy U

    29 AĞUSTOS 2009
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007