SORU
6 AĞUSTOS 2010, Cuma


Sadece belirli anahtarları içeren filtre dict?

Girdileri bir sürü vardır dict var. Sadece bir kaç seçkin ilgileniyorum. Kolay bir şekilde tüm diğerlerini budamak için var mı?

CEVAP
6 AĞUSTOS 2010, Cuma


Yeni bir dict inşa:

dict_you_want = { your_key: old_dict[your_key] for your_key in your_keys }

Sözlük anlama kullanır.

Eğer onları yoksun bir sürümü (ve daha önce Python 2.6 ıe) kullanıyorsanız, dict((your_key, old_dict[your_key]) for ...). Çirkin olsa da aynı şey oldu.

Bu, jnnnnn versiyonu aksine, herhangi bir boyut old_dicts için istikrarlı performansı (your_keys sayısı sadece bağlıdır) olduğunu unutmayın. Hız ve bellek açısından. Bu jeneratör bir ifade olduğundan, bir defada tek bir öğe işler ve old_dict tüm öğeleri arasında görünüyor değil mi.

Her şey yerinde çıkarma:

unwanted = set(keys) - set(your_dict)
for unwanted_key in unwanted: del your_dict[unwanted_key]

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • FailArmy U

    FailArmy U

    29 AĞUSTOS 2009
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011