Saltar al contenido

python: ¿Cómo asigno valores a las letras?

Agradeceríamos tu ayuda para compartir nuestros artículos con relación a las ciencias de la computación.

Solución:

Quieres un diccionario Python nativo.

(y probablemente también desee que sus valores comiencen desde “0” y no desde “1”, por lo que puede void agregando un +1 en todas sus asignaciones, como se muestra a continuación)

Construye uno con esto:

import string
values = dict()
for index, letter in enumerate(string.ascii_lowercase):
   values[letter] = index + 1

Esto te da cosas como:

print values["a"]
-> 1

Por supuesto, probablemente podría usar la función incorporada “ord” y omitir este diccionario por completo, como en las otras respuestas:

print ord("c") - (ord("a")) + 1

O en python 3.x o 2.7, puede crear el diccionario en un solo paso con una expresión de generador de dictado:

values = chr(i): i + 1 for i in range(ord("a"), ord("a") + 26)

Si solo desea asignar caracteres del alfabeto ASCII a números, puede usar ord() y luego ajustar el resultado:

>>> ord('a') - 96
1

Si quieres que esto funcione también para letras mayúsculas:

>>> ord('A'.lower()) - 96
1

Además, es posible que desee validar que el argumento es de hecho un solo carácter ASCII:

>>> char = 'a'
>>> len(char) == 1 and char.isalpha() and 'a' <= char <= 'z'
True

O:

>>> import string
>>> len(char) == 1 and char in string.ascii_lowercase
True

def value(letter):
    return ord(letter) - ord('a') + 1

Tienes la posibilidad dar recomendación a esta noticia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *