2016-04-09 15 views
0

Merhaba, bir süredir bu sorunla uğraşıyorum. Ben gibi o kimlikleri bir dizi sözlüklere bir başka listesi varBelirli bir sözlük anahtarını bir listeye ekleme (Python 2.6)

dict1 = { 
    'Name': 'ID Numbers', 
    'children': [] 
    } 

:

ben gibi bir sözlük var

list1 = [ 
    { 
    "id": 1004, 
    "othervalue": "blah blah" 

    }, 
    { 
    "id": 1008, 
    "othervalue": "blah blah" 

    } 

ben bu sözlükleri eklemem gerekiyor ' çocuk listesi

o 2.7 olsaydı ben muhtemelen yapabilirdi:

Muhtemelen
for x in dict1: 
    x['children'].append(IDs from list1) 

? Ama alas 2,6 ve bunun hakkında nasıl gideceğimize dair hiçbir fikrim yok. Herhangi bir fikir çok takdir edilecektir.

Beklenen çıkışı: dict comprehensions Python 2.6 bulunmayan rağmen

dict1 = { 
    'Name': 'ID Numbers', 
    'children': [ 

    { 
    "id": 1004, 
    }, 

    { 
    "id": 1008, 
    } 

] 
} 
+0

'mydict3 için x: x ['children']. Uzatmak (list2)'? Bu sözlükleri 'çocuk' listesine _add eder. –

+0

İlk off -apolojiler - Kodu güncelledim, list2'deki diğer tüm tuşlara sahibim, bu yüzden üzerinde yineleme yapmam gerekiyor. Ve bu kod zaten işe yaramıyor mu? TypeError: dize indisleri tamsayı olmalı, str değil –

+1

Hala beklenen çıktının ne olduğu açık değil. List1'iniz dict. 'list2' sözlüklerin listesidir. 'mydict3' bile ilan edilmiyor. Bize [MCVE] gösterebilir misin? –

cevap

0

, yine dict yapıcı kullanabilir. Listeye birden fazla öğe eklemek istediğinizden, extend, append'dan daha uygun olabilir.

dict1['children'].extend(dict([('id', d['id'])]) for d in list1) 
+0

Teşekkür ederim, bu mükemmel çalıştı. Başlangıçta kötü bir açıklama için özür dilerim! –

İlgili konular