Título: Invertir claves de un diccionario por comprensión en python. Publicado por: jam man en 22 Septiembre 2015, 05:49 am Hola. Como indico en el titulo, estoy haciendo un diccionario por comprensión, este es mi código.
Código
y pues quiero que en vez de que las claves sean números que sean las letras del abecedario, por eso el rango de 1 hasta 28, y una vez reemplazada la clave agregar dos ceros al valor de cada clave es decir, si el valor es "36", quedaría como "0036" y si el valor tiene tres números ya solo se le agregaría un cero, ej: "961", seria "0961", y se el valor ya cuenta con 4 dígitos o números no se agrega nada. Título: Re: Invertir claves de un diccionario por comprensión en python. Publicado por: tincopasan en 22 Septiembre 2015, 11:14 am no entendí nada! lo único que creo entender es lo de los 0, quizá deberías sacar el largo de la cadena(clave según vos) y si es menor a 4, pues agregar los 0 necesarios para que cumpla ese requisito.
edito: supongo que queres hacer todo en una línea, bueno puede ser también algo como esto: Código
Título: Re: Invertir claves de un diccionario por comprensión en python. Publicado por: Eleкtro en 22 Septiembre 2015, 13:26 pm por eso el rango de 1 hasta 28 El abecedario Inglés se compone de 26 letras, mientras que el Español de 27, así que viendo tu búcle asumiré que intentas incluir la "Ñ", por ende, omitiré sugerirte soluciones que serían más simples si tu intención fuese utilizar el abecedario Inglés, haciendo uso de la función Zip. ➢ https://docs.python.org/2/library/functions.html#zip Para el primer problema, puedes declarar un set de caraceres, y para el segundo problema, puedes usar la función string.zfill() aka zerofill. ➢ https://docs.python.org/2/library/string.html#string.zfill Aquí tienes un ejemplo: Código
Resultado de ejecución: Citar a 0025 b 0036 c 0049 d 0064 e 0081 f 0100 g 0121 h 0144 i 0169 j 0196 k 0225 l 0256 m 0289 n 0324 ñ 0361 o 0400 q 0441 r 0484 s 0529 t 0576 u 0625 v 0676 w 0729 x 0784 y 0841 z 0900 Saludos Título: Re: Invertir claves de un diccionario por comprensión en python. Publicado por: jam man en 22 Septiembre 2015, 14:37 pm Muchas gracias por sus comentarios, me ha servido bastante, muchas gracias. Lo que no me expliqué bien fue lo de cambiar las claves que son números por letras del abecedario.
Al ejecutar el código que tenía me salía esto. Código
pero como el usuario tiene que introducir cualquier frase para hacer un tipo cifrado se tendría que cambiar la clave o key y quedaría así: Código
eso es lo que tiene que hacer el programa. Título: Re: Invertir claves de un diccionario por comprensión en python. Publicado por: explorer en 23 Septiembre 2015, 16:07 pm Con la función chr() puedes convertir un entero en un carácter cuyo código ASCII es el indicado por el entero.
https://docs.python.org/2/library/functions.html#chr Y para poner los '0' delanteros, se puede usar format (%) https://docs.python.org/2/library/stdtypes.html#string-formatting-operations Sería algo así: Código Sale: {'a': '0036', 'c': '0064', 'b': '0049', 'e': '0100', 'd': '0081', 'g': '0144', 'f': '0121', 'i': '0196', 'h': '0169', 'k': '0256', 'j': '0225', 'm': '0324', 'l': '0289', 'o': '0400', 'n': '0361', 'q': '0484', 'p': '0441', 's': '0576', 'r': '0529', 'u': '0676', 't': '0625', 'w': '0784', 'v': '0729', 'y': '0900', 'x': '0841', 'z': '0961'} En Perl quedaría casi igual (pero más corto, claro): Código Título: Re: Invertir claves de un diccionario por comprensión en python. Publicado por: jam man en 10 Octubre 2015, 23:09 pm Y como hago para que busca alguna palabra especifica? por ejemplo si ingreso solo la letra A, que me imprima su valor que es 0036, y cuando sea una frase?
|