-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