2011-05-20 13 views
5

bir Listesinden bir Sözlüğü Oluşturma:Böyle 2-dizilerini listesi var 2-Tuples

l = [('a', 1), ('b', 2)] 

ben de yapmam, böylece bir sözlük nesne üzerine bu haritaya isterler

Bu yüzden denedim ama neden başarısız oluyor?

AttributeError: 'NoneType' object has no attribute 'update'

yanlış yapıyorum:

d = reduce(lambda y,x : y.update({x[0]:x[1]}),l,{}) 

Bu hata veriyor?

cevap

20
>>> l = [('a', 1), ('b', 2)] 
>>> d = dict(l) 
>>> d['a'] 
1 
+0

Neden bunu anlamadım bilmiyorum! Teşekkürler Andrey – nemesisfixx

+0

Bu, mcnemesis'in problemini çözerken, bu cevap kendi kodunun neden başarısız olduğu konusundaki sorusunu ele almıyor. –

+1

@Steven Rumbalski: Çünkü "dict.update", "Yok" u döndürür; –

4

Neden sadece bunu:

d = dict(l) 

Ayrıca, soruyu cevaplamak için, (2 başlık olur) y hiçbir yöntem güncelleştirme çünkü bu bir olmadığından çözüm, başarısız dict. Neyse ki, yaptığınız şey tam olarak inşa edilmiştir.

+0

Teşekkürler @Rafe Kettler, benim yaklaşımımla ilgili olarak beni şaşırtan şey; ilk kez '' indir '', '{} '' başlangıç ​​değeri' olarak geçtiğimde, 'update' i başlatamıyorum? Bu durumda '{}' değerine bağlı değil, ilk kez 'azaltma 'yürütülür mü? Yoksa yanılıyor muyum? – nemesisfixx