Función zip en Python para cambiar a un nuevo conjunto de caracteres

Dado un juego de caracteres de 26 letras, que es equivalente al juego de caracteres del alfabeto inglés, es decir (abcd….xyz) y actúa como una relación. También nos dan varias oraciones y tenemos que traducirlas con la ayuda de un nuevo conjunto de caracteres dado. 

Ejemplos:

New character set : qwertyuiopasdfghjklzxcvbnm
Input : "utta"
Output : geek

Input : "egrt"
Output : code

Tenemos una solución existente para este problema, consulte Cambiar string a un nuevo enlace de juego de caracteres. Resolveremos este problema en python usando el método Zip() y las estructuras de datos del diccionario . El enfoque es simple,

  1. Cree una estructura de datos de diccionario donde mapearemos el juego de caracteres original en inglés con el nuevo juego de caracteres dado, zip(newCharSet,origCharSet) lo hace por nosotros. Asignará cada carácter del conjunto de caracteres original a cada carácter dado del nuevo conjunto de caracteres secuencialmente y devolverá una lista de tuplas de pares, ahora lo convertimos en diccionario usando dict() .
  2. Ahora itere a través de la string original y conviértala en una nueva string.

Implementación:

Python3

# Function to change string to a new character
 
def newString(charSet,input):
 
    # map original character set of english
    # onto new character set given
    origCharSet = 'abcdefghijklmnopqrstuvwxyz'
    mapChars = dict(zip(charSet,origCharSet))
 
    # iterate through original string and get
    #  characters of original character set
    changeChars = [mapChars[chr] for chr in input]
 
    # join characters without space to get new string
    print (''.join(changeChars))
 
# Driver program
if __name__ == "__main__":
    charSet = 'qwertyuiopasdfghjklzxcvbnm'
    input = 'utta'
    newString(charSet,input)
Producción

geek

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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