[Python-de] dict filtern
Peter Otten
__peter__ at web.de
So Apr 14 19:40:11 CEST 2013
Philipp Kraus wrote:
> Hallo,
>
> ich habe folgendes dict:
> x = {
>
> "data1" : {
> "item 1" : {
> "kind" : "a"
> ....
> } ,
>
> "item 2" : {
> "kind" : "a"
> ....
> },
>
> "item 3" : {
> "kind" : "b"
> ....
> }
> },
> ....
> }
>
>
> ich durchlaufe das dict so:
>
> for key, value in x.iteritems() :
> y = ?
> if y :
> do something with y
>
>
> Ich möchte an der Stelle ? prüfen, ob sich innerhalb der Kindelemente
> von value ein Feld
> mit dem Typ "a" enthält, wenn dies der Fall ist, soll der if Zweig
> ausgeführt werden. Ich würde
> jetzt mit filter versuchen das zu lösen und dann via if prüfen, ob die
> Liste leer ist. Geht das
> vielleicht irgendwie kompakter z.B.
>
> if any(value.items.child("kind") == "a")
Ich werde aus deiner Problembeschreibung nicht ganz schlau. Wenn es sich bei
allen Werten um zweifach verschachtelte dicts handelt:
for key, outer in x.iteritems():
if any(inner.get("kind") == "a" for inner in outer.itervalues()):
...
Mehr Informationen über die Mailingliste python-de