Python: elimine elementos de índice similares en strings

Dadas dos strings, eliminó todos los elementos de ambos, que son iguales en un índice similar.

Entrada : test_str1 = ‘geels’, test_str2 = ‘beaks’
Salida : gel, bak
Explicación : e y s se eliminan cuando ocurren en los mismos índices.

Entrada : test_str1 = ‘geeks’, test_str2 = ‘geeks’
Salida : ”, ”
Explicación : las mismas strings, todo el mismo índice, por lo tanto, eliminado.

Método #1: Usar loop + zip() + join()

En esto, emparejamos elementos con su índice usando join(), y verificamos la desigualdad para filtrar solo elementos diferentes en ambas strings, join() se usa para convertir el resultado en strings.

Python3

# Python3 code to demonstrate working of 
# Remove similar index elements in Strings
# Using join() + zip() + loop
  
# initializing strings
test_str1 = 'geeks'
test_str2 = 'beaks'
  
# printing original strings
print("The original string 1 is : " + str(test_str1))
print("The original string 2 is : " + str(test_str2))
  
# conversion to list for zipping
list1 = list(test_str1)
list2 = list(test_str2)
res1 = []
res2 = []
for ch1, ch2 in zip(list1, list2):
      
    # check inequalities
    if ch1 != ch2:
        res1.append(ch1)
        res2.append(ch2)
  
# conversion to string 
res1 = "".join(res1)
res2 = "".join(res2)
      
# printing result 
print("Modified String 1 : " + str(res1)) 
print("Modified String 2 : " + str(res2)) 
Producción

The original string 1 is : geeks
The original string 2 is : beaks
Modified String 1 : ge
Modified String 2 : ba

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

Realiza la tarea utilizando un método similar al anterior, solo una línea para realizar la tarea en forma compacta.

Python3

# Python3 code to demonstrate working of 
# Remove similar index elements in Strings
# Using list comprehension
  
# initializing strings
test_str1 = 'geeks'
test_str2 = 'beaks'
  
# printing original strings
print("The original string 1 is : " + str(test_str1))
print("The original string 2 is : " + str(test_str2))
  
# one-liner to solve problem
res = ["".join(mastr) for mastr
      in zip(*[(a, b) for a, b in zip(test_str1, test_str2) if a != b])]
  
# printing result 
print("Modified String 1 : " + str(res[0])) 
print("Modified String 2 : " + str(res[1])) 
Producción

The original string 1 is : geeks
The original string 2 is : beaks
Modified String 1 : ge
Modified String 2 : ba

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 *