2013-02-20 61 views
3

我有兩個字典Python的方式來匹配字典

a = {'hola':4.6, 'bye':56.7, 'tres':52.1} 
b = {'hola':7.1, 'tres':103.1} 

和b是的一個子集。

我想創建一個新的字典,C與價值觀,A/B,即

c = {'hola'=7.1/4.6, 'tres':103.1/52.1} 

我可以爲B到A的元素的循環做了,並創建新的,但有更優雅的方式,沒有循環?只是好奇。

回答

10

大多數Python的可能是字典理解:

c = {k: a[k]/v for k,v in b.iteritems()} 

快譯通理解是在Python 2.7版推出,舊版本使用:

c = dict((k, a[k]/v) for k,v in b.iteritems()) 
+3

注:在Python 3.X'iteritems'應改爲'項目'。 – 2013-02-20 16:51:57

+0

@Daniel和列夫,非常感謝,像一個魅力 – Dnaiel 2013-02-20 16:52:40