Saltar al contenido

Tabla hash bidireccional o diccionario bidireccional en Python

    Conocemos los diccionarios de Python en una estructura de datos en Python que contiene datos en forma de pares clave:valor. En este artículo, discutiremos la tabla hash bidireccional o el diccionario bidireccional en Python. Podemos decir que un diccionario bidireccional se puede representar como clave ⇐⇒ valor. Un ejemplo de diccionarios bidireccionales es:

    Ejemplo:

    dict={ 1 : 'Apple' , 2 : 'Google' , 3 : 'Microsoft'}
    
    Input 1: 1
    Output 1: Apple
    
    Input 2: Microsoft
    Output 2: 3
    
    Explaination:The above dictionary maps the keys ( integers) to the values (company names) in this case.

    Un diccionario bidireccional se puede representar como clave ⇐⇒ valor. Es decir, puede devolver valor en función de la clave y también la clave correspondiente en función del valor. En el ejemplo anterior, se puede buscar un diccionario normal usando 1,2,3, lo que devolvería Apple, Google y Microsoft, respectivamente. Sin embargo, en un diccionario bidireccional, podemos buscar el diccionario usando 1,2 y 3, así como Apple, Google y Microsoft, que devolverían 1,2,3 respectivamente.

    Implementación paso a paso

    Paso 1: Instale la biblioteca bidict.

    Esta biblioteca nos permite trabajar con tablas hash bidireccionales o diccionarios bidireccionales. Para instalar la biblioteca bidict, necesitamos usar el siguiente comando:

    pip install bidict

    Paso 2: Importación de la clase bidict desde el módulo bidict

    Pitón

    from bidict import bidict

    Paso 3: crea un diccionario normal.

    Crear un diccionario en Python es fácil. Vamos a crear un diccionario llamado dict_it_fullforms que pone los formularios cortos de TI de uso común en su forma completa.

    Python3

    dict_it_fullforms={'APK':'Android Application Package',

                       'CPU':'Central Processing Unit',

                       'SMS':'Short Message Service',

                       'USB':'Universal Serial Bus',

                       'WIFI':'Wireless Fidelity',

                       'WWW':'World Wide Web'}

    Paso 4: crea un objeto bidict

    Cree un diccionario bidireccional creando un objeto bidict bidict_it_fullforms usando dict_it_fullforms.

    Python3

    bidict_it_fullforms = bidict(dict_it_fullforms)

    Paso 5: Buscar con formularios cortos

    Aquí usamos las claves para imprimir los valores de bidict_it_fullforms.

    Python3

    print(bidic_it_fullforms['APK'])

    print(bidic_it_fullforms['SMS'])

    print(bidic_it_fullforms['WIFI'])

    Salida:

    Android Application Package
    Short Message Service
    Wireless Fidelity

    Paso 6: Un atributo inverso de un objeto bidict

    Para obtener las claves de los respectivos formularios completos, necesitamos usar un atributo inverso del bidict_it_fullforms objeto.

    Python3

    bidict_it_shortforms = bidict_it_fullforms.inverse

    Paso 7: Buscar usando formularios completos

    Ahora tenemos bidict_it_shortforms como una referencia de objeto bidict que se puede usar para recuperar claves usando valores. Por lo tanto, podemos obtener los formularios cortos utilizando los formularios completos.

    Python3

    print(bidic_it_shortforms['Central Processing Unit'])

    print(bidic_it_shortforms['Universal Serial Bus'])

    print(bidic_it_shortforms['World Wide Web'])

    Salida:

    CPU
    USB
    WWW

    Paso 8: Cambios o Adiciones

    Si se realizan cambios o adiciones de clave/valor a bidic_it_shortforms, se reflejará en bidic_it_fullforms y viceversa. Agreguemos la forma completa de SIM.

    Python3

    bid_it_shortforms['Subscriber Identity Module']='SIM'

    print(bidic_it_fullforms['SIM'])

    Salida:

    Subscriber Identity Module

    Código completo:

    Python3

     

    from bidict import bidict

     

    dict_it_fullforms = {'APK': 'Android Application Package'

                         'CPU': 'Central Processing Unit',

                         'SMS': 'Short Message Service'

                         'USB': 'Universal Serial Bus'

                         'WIFI': 'Wireless Fidelity'

                         'WWW': 'World Wide Web'}

     

    bidict_it_fullforms = bidict(dict_it_fullforms)

     

    print(bidic_it_fullforms['APK'])

    print(bidic_it_fullforms['SMS'])

    print(bidic_it_fullforms['WIFI'])

     

    bidict_it_shortforms = bidict_it_fullforms.inverse

     

    print(bidic_it_shortforms['Central Processing Unit'])

    print(bidic_it_shortforms['Universal Serial Bus'])

    print(bidic_it_shortforms['World Wide Web'])

     

    bid_it_shortforms['Subscriber Identity Module'] = 'SIM'

    print(bidic_it_fullforms['SIM'])

    Salida:

    Android Application Package
    Short Message Service
    Wireless Fidelity
    CPU
    USB
    WWW
    Subscriber Identity Module
    Su Calificación Nos Ayuda a Mejorar