字典模块提供三个类来处理一对一映射类型的一些操作
'bidict', 'inverted', 'namedbidict'
>>> import bidict>>> dir(bidict)['mutablemapping', '_legalnamepat', '_legalnamere', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bidict', 'inverted', 'namedbidict', 're', 'wraps']
1.bidict类:
>>> from bidict import bidict>>> d=bidict({'a':'b'})>>> d['a']'b'>>> d[:'b']'a'>>> ~d #反转字典bidict({'b': 'a'})>>> dict(d) #转为普通字典{'a': 'b'}>>> d['c']='c' #添加元素,普通字典的方法都可以用>>> dbidict({'a': 'b', 'c': 'c'})
2.inverted类,反转字典的键值
>>> seq = [(1, 'one'), (2, 'two'), (3, 'three')]>>> list(inverted(seq)) [('one', 1), ('two', 2), ('three', 3)]
3.namedbidict(mapname, fwdname, invname):
>>> couplemap = namedbidict('couplemap', 'husbands', 'wives')>>> famous = couplemap({'bill': 'hillary'})>>> famous.husbands['bill']'hillary'>>> famous.wives['hillary']'bill'>>> famous.husbands['barack'] = 'michelle'>>> del famous.wives['hillary']>>> famouscouplemap({'barack': 'michelle'})
以上就是python字典支持双向索引吗的详细内容。