Programa Python para convertir caracteres a mayúsculas alrededor de números

Dada una String, el siguiente programa convierte el carácter alfabético alrededor de cualquier dígito a mayúsculas.

Entrada : test_str = ‘geeks4geeks is best1 f6or ge8eks’ 
Salida : geekS4Geeks is best1 F6Or gE8Ek 
Explicación : S y G están en mayúsculas rodeadas por 4.
Entrada : test_str = ‘geeks4geeks best1 f6or ge8eks’ 
Salida : geekS4Geeks best1 F6Or gE8Ek 
Explicación : S y G están en mayúsculas rodeadas por 4. 

Método 1: Usar upper() , loop e isdigit()

En esto, iteramos para cada carácter, verificamos si es un dígito y, si lo es, transformamos los alfabetos circundantes (el siguiente y el anterior) a mayúsculas usando upper().

Python3

# initializing string
test_str = 'geeks4geeks is best1 for ge8eks'
 
# printing original string
print("The original string is : " + str(test_str))
 
res = ''
for idx in range(len(test_str) - 1):
    if test_str[idx + 1].isdigit() or test_str[idx - 1].isdigit():
        res += test_str[idx].upper()
    else:
        res += test_str[idx]
#Adding last index character
else:
    res += test_str[idx+1]
         
# printing result
print("Transformed String : " + str(res))

Producción:

La string original es: geeks4geeks es best1 para ge8eks

String transformada: geekS4Geeks es best1 para gE8Ek

Método 2: Usar la comprensión de listas

Esto es similar al método anterior, la única diferencia es que el siguiente aborda el mismo problema en una sola línea.

Python3

# initializing string
test_str = 'geeks4geeks is best1 for ge8eks'
 
# printing original string
print("The original string is : " + str(test_str))
 
# list comprehension offering 1 liner solution
res = [test_str[idx].upper() if test_str[idx + 1].isdigit() or test_str[idx - 1].isdigit() else test_str[idx] for idx in range(len(test_str) - 1)]
res = res + list(test_str[-1])
         
# printing result
print("Transformed String : " + ''.join(res))

Producción:

La string original es: geeks4geeks es best1 para ge8eks

String transformada: geekS4Geeks es best1 para gE8Ek

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *