-3
如果我有兩個字典(在我的計劃有兩個以上):充分利用不同的字典普通鑰匙,蟒蛇
a={'ab':3, 'bc':4, 'cj':2}
b={'ab':2, 'cd':2, 'ed':2, 'cj':4}
,並希望得到他們之間的共同鍵:
common_keys=['ab','cj']
我該怎麼辦?我知道set.intersection
但不知道如何將字典鍵變成一組。
如果我有兩個字典(在我的計劃有兩個以上):充分利用不同的字典普通鑰匙,蟒蛇
a={'ab':3, 'bc':4, 'cj':2}
b={'ab':2, 'cd':2, 'ed':2, 'cj':4}
,並希望得到他們之間的共同鍵:
common_keys=['ab','cj']
我該怎麼辦?我知道set.intersection
但不知道如何將字典鍵變成一組。
使用帶有dict.viewkeys()
和設置操作字典視圖:
common_keys = a.viewkeys() & b.viewkeys() & c.viewkeys()
如果您正在使用Python 3取而代之的是,dict.keys()
method已經返回一個字典視圖:
common_keys = a.keys() & b.keys() & c.keys()
無論是操作返回set
object。
演示:
>>> a = {'ab': 3, 'bc': 4, 'cj': 2}
>>> b = {'ab': 2, 'cd': 2, 'ed': 2, 'cj': 4}
>>> c = {'ab': 6, 'ad': 2, 'dd': 2, 'cj': 1}
>>> a.viewkeys() & b.viewkeys() & c.viewkeys()
set(['cj', 'ab'])
爲什麼使用套比使用viewkeys快? – 2014-09-30 12:56:23
@PadraicCunningham:設置比視圖鍵快嗎? – 2014-09-30 12:56:59
使用OP的代碼,'viewkeys - > 1.15μsper loop','set(a).intersection ... - > 706 ns per loop ' – 2014-09-30 12:58:30