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

  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • KendrickLamarVEVO

    KendrickLama

    9 ŞUBAT 2011
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011