bidicito

Structura de datos de mapeo bidireccional (uno a uno)
Descargar ahora

bidicito Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • MIT/X Consortium Lic...
  • Precio:
  • FREE
  • Nombre del editor:
  • Josh Bronson
  • Sitio web del editor:
  • http://pypi.python.org/pypi/Pythello

bidicito Etiquetas


bidicito Descripción

Estructura de datos de mapeo bidireccional (uno a uno) El licitic es un paquete de Python que proporciona una estructura de datos de mapeo bidireccional y utilidades relacionadas (namedbidict, invertida) a las relaciones individualmente modelales de uno a uno en Python. Para mantener la curva de aprendizaje baja, no introduce nuevas funciones a la API del DICT al que ya está familiarizado. Debe su simplicidad a la sintaxis de la rebanada de Python, que proporciona una forma útil y natural de expresar el mapeo inverso en un licit: >>> marido2wives = licit ({'John': 'jackie'}) >>> esposos2wits # El mapeo delantero es como con Dict'Jackie '>>> Marudos2wits # Usa la rebanada para el mapeo inverso' Javin'you También puede usar el operador inverso unario ~ en un licitante para obtener el mapeo inverso : >>> ~ marido2wivesbidict ({'jackie': 'John'}) La motivación y el DICT incorporado de EXAMPLESPYTHON, nos permiten asociar claves únicas con valores arbitrarios. Debido a que las teclas deben ser senciles, los valores pueden ser consultados por clave en tiempo constante. Las claves diferentes pueden asignar el mismo valor, pero una sola tecla no puede asignar dos valores diferentes. Por ejemplo, {-1: 1, 0: 0, 1: 1} es un dict con tres claves únicas y dos valores únicos, porque las teclas -1 y 1 ambos mapan a 1. Si intentas escribir su inversa {1 : -1, 0: 0, 1: 1}, el DICT que sale tiene solo dos asignaciones, una para la clave 1 y otra para la clave 0; Dado que la clave 1 no está permitida al mapeo a ambos -1 y 1, se descarta una de estas asignaciones. A veces se encuentra la relación que estamos modelando solo tendrá una sola asignación de claves a un solo valor, como en la relación de los esposos a las esposas (asumiendo la monogamia). Esto se llama un mapeo uno a uno (o inyectivo) (consulte http://en.wikipedia.org/wiki/injective_mapping).En este caso podemos estar seguros de que la asignación inversa tiene el mismo número de elementos que el Mapeo de avance, y además, que si los mapas clave K para valorar V en el mapeo delantero, valor V Maps a Key k en la inversa. Sería útil luego poder buscar las llaves por valor en un tiempo constante, además de poder buscar valores por clave. Con la restricción adicional que los valores deben ser senchables, así como las claves, simplemente es posible un diccionario bidireccional: ingrese a Bidict.bidict que proporciona una estructura de datos de mapeo bidireccional que ofrece a las miradas hacia adelante y hacia adelante de forma constante en una sintaxis que se basa naturalmente en lo que nosotros 'Realizado por los dictos regulares. Considere el siguiente mapeo uno a uno: >>> h2w = bidict ({'bill': 'Hillary', 'Barack': 'Michelle'}) Para buscar esposa por el esposo, use la sintaxis de subíndices familiares que con Un DICT: >>> H2W 'Hillary'or, por analogía a la cortada de matriz, puede proporcionar opcionalmente un colon de arrastre para enfatizar que está hablando de un mapeo delantero: >>> H2W 'Hillary'and Ahora puede adivinar cómo deletrear el mapeo inverso (es decir, para buscar a un esposo por su esposa): >>> H2W ' Bill'La sintaxis de rebanada funciona para configurar y eliminar elementos en Cualquiera de las direcciones: >>> H2W = 'Melinda' >>> H2W = 'sonny' >>> del h2w Se puede usar la fábrica de clase NAMEDBIDICT. Para crear un mapeo bidireccional con nombres personalizados para el avance y las asignaciones inversas accesibles a través de attributes.a el ejemplo del mundo real se puede encontrar en el módulo HTMLENTITYDEFS, que mantiene un dict Name2coDePoint y un dict inverso CodePoint2Name por separado. Esto podría ser modelado con un solo licitado: >>> htmlentities = namedbidict ('htmlentities', 'nombres', 'codigos') >>> entidades = htmlentities ({'lt': 60, 'gt': 62 ' AMP ': 38}) #, etc. >>> entidades.names 60 >>> entidades.codepoints ' amp'see la clase de licitación para más ejemplos. Nota: el licitado no subclase, pero su API es un superconjunto de la API DICT menos el método de FROMEKEYS, que no tiene sentido en el contexto de un mapeo inyectivo. El licitado implementa la interfaz de MutableMapping. Este módulo también proporciona un iterador invertido en el espíritu de la invertida incorporada. Pase en un mapeo para obtener el mapeo inverso, es iterable de pares para obtener los inversos de los pares, o cualquier objeto que implementa un método __invertido__. Consulte la clase invertida para los ejemplos. Nota: "inverso" en lugar de "reverso" porque es el término utilizado en las matemáticas y su significado es más específico, y porque "invertido" ya significa algo diferente en Python (invirtiendo el orden de la Artículos en una secuencia versus invirtiendo los pares (k, v) en un mapeo). Requisitos: · Python


bidicito Software relacionado

PathCreator

Herramienta para crear una ruta de reproducción de sonido 3D dada un oyente, altavoces, ruta de audio y pista de audio. ...

165

Descargar