Python: agregue K entre cambios de casos

Dada una string, agregue K cuando ocurra un cambio de caso.

Entrada : test_str = ‘GeeKSforGeEKs’, K = ‘*’ 
Salida : G*ee*KS*for*G*e*EK*s 
Explicación : Después de G, el carácter e en minúscula está presente, * se inserta en el medio. Lo mismo ocurre con cada inserción.

Entrada : test_str = ‘GeeKS’, K = ‘*’ 
Salida : G*ee*KS 
Explicación : insertado en los cambios de mayúsculas y minúsculas, como se explica. 

Método #1: Usando loop + isupper() + islower()

En esto, iteramos para cada elemento y verificamos en cada elemento si el siguiente es de un caso diferente, si es así, se agrega K en la unión.

Python3

# Python3 code to demonstrate working of
# Add K between case shifts
# Using loop + isupper() + islower()
import re
  
# initializing string
test_str = 'GeeKSforGeEKs'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing K
K = '^'
  
res = ""
for idx in range(0, len(test_str) - 1):
    # checking for case shift
    if test_str[idx].isupper() and test_str[idx + 1].islower() or test_str[idx].islower() and test_str[idx + 1].isupper():
        res = res + test_str[idx] + K
    else:
        res = res + test_str[idx]
res = res + test_str[-1]
  
# printing result
print("String after alteration : " + str(res))
Producción

The original string is : GeeKSforGeEKs
String after alteration : G^ee^KS^for^G^e^EK^s

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

Otra forma de resolver este problema, solo proporciona una abreviatura del método anterior.

Python3

# Python3 code to demonstrate working of
# Add K between case shifts
# Using loop + isupper() + islower()
  
# initializing string
test_str = 'GeeKSforGeEKs'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing K
K = '^'
  
# join() to get result string
res = ''.join([test_str[idx] + K if (test_str[idx].isupper() and test_str[idx + 1].islower()) or
               (test_str[idx].islower() and test_str[idx + 1].isupper()) else test_str[idx] for idx in range(0, len(test_str) - 1)])
  
res += test_str[-1]
  
# printing result
print("String after alteration : " + str(res))
Producción

The original string is : GeeKSforGeEKs
String after alteration : G^ee^KS^for^G^e^EK^s

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 *