Maison  >  Article  >  développement back-end  >  Le dictionnaire Python prend-il en charge l’indexation bidirectionnelle ?

Le dictionnaire Python prend-il en charge l’indexation bidirectionnelle ?

anonymity
anonymityoriginal
2019-06-15 13:20:2911319parcourir

Le dictionnaire en Python est un autre modèle de conteneur mutable et peut stocker tout type d'objet. Chaque paire clé-valeur (clé => valeur) du dictionnaire est séparée par deux points (:) et chaque paire est séparée par une virgule (,). L'ensemble du dictionnaire est inclus entre accolades ({}) et. le dictionnaire n'est pas ordonné, appuyez sur la touche pour obtenir la valeur.

Le dictionnaire Python prend-il en charge l’indexation bidirectionnelle ?

Le module dictionnaire fournit trois classes pour gérer certaines opérations de types de mappage un-à-un

'bidict', 'inverted', 'namedbidict'

>>> import bidict
>>> dir(bidict)
['MutableMapping', '_LEGALNAMEPAT', '_LEGALNAMERE', '__builtins__', '__doc__', 
'__file__', '__name__', '__package__', 'bidict', 'inverted', 'namedbidict', 're', 'wraps']

1.classe 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'   #添加元素,普通字典的方法都可以用
>>> D
bidict({'a': 'b', 'c': 'c'})

2.classe inversée, inverser la valeur clé du dictionnaire

>>> 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']
>>> famous
CoupleMap({'barack': 'michelle'})

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn