du musst dir neue Elemente erzeugen:
items = dict(
(
contentname, {
'Feld1':contentdate['Feld1'],
'Feld2':contentdate['Feld2']
}
)
for contentname, contentdata in tabledata.iteritems()
if contentdata.get("kind") == "a"
)
lg,
Johannes
On 14.04.2013 22:15, Philipp Kraus wrote:
> Ich habe das aktuell so:
>
> for tablename, tabledata in x.iteritems() :
> items = dict((contentname, contentdata) for contentname,
> contentdata in tabledata.iteritems() if contentdata.get("kind") == "a")
>
> damit habe in items die Elemente drin, die ich brauche. Ich �bernehme
> aber damit alle Daten aus dem urspr�nglichen dict (item i). Kann ich nun
> noch verschiedene Felder ausschlie�en?
> Also letztendlich so etwas
>
> items = dict((contentname, contentdata) if not contentname in ["kind",
> "type"] for contentname,
> contentdata in tabledata.iteritems() if contentdata.get("kind") == "a")
> ?
> d.h. ich m�chte aus dicts item i noch verschiedene Elemente entfernen
>
> Danke
>
> Phil
>
>
>
>
> Am 14.04.2013 um 21:50 schrieb Philipp Kraus:
>
>> Hi,
>>
>> danke f�r den netten Post.
>>
>>
>> Am 14.04.2013 um 20:39 schrieb Johannes:
>>
>>> Also, erst einmal zum Verst�ndnis:
>>>
>>> x ist ein Dict aus Dict mit Keys 'data_i; und zugeh�rigen Dict mit Key
>>> 'item_i'. Alle 'item_i' Eintr�ge haben ein Feld 'kind'.
>>>
>>> Du bist interessiert an den 'data'-Eintr�gen, die mindestens ein
>>> 'item_i' vom kind a haben.
>>
>> Ja
>>
>>
>>>
>>> also an
>>> [item for item in inner_items.values()
>>> if "kind" in item.keys() and item['kind' == "a"]
>>>
>>>
>>> im konkretem Fall unten w�re es also:
>>>
>>> for key, value in x.iteritems():
>>> items_to_work on = [item for item in value.values()
>>> if "kind" in item.keys() and item['kind' == "a"]
>>> if len(items_to_work_on) > 0:
>>> pass //do some stuff here
>>
>> Ich wollte halt die verschachtelten Schleifen vermeiden und es eben
>> kompakter bekommen.
>>
>>
>>>
>>> On 14.04.2013 17:44, Philipp Kraus wrote:
>>>> _______________________________________________
>>>> python-de maillist -
pyth...@python.org
>>>> <mailto:
pyth...@python.org>
>>>>
http://mail.python.org/mailman/listinfo/python-de
>>>>
>>>
>>> _______________________________________________
>>> python-de maillist -
pyth...@python.org <mailto:
pyth...@python.org>
>>>
http://mail.python.org/mailman/listinfo/python-de
>>
>> _______________________________________________
>> python-de maillist -
pyth...@python.org <mailto:
pyth...@python.org>