Python: extrae índices de strings coincidentes presentes, sin índice

Dadas dos strings, extraiga los índices de todos los caracteres de la string 1 que están presentes en otra string, pero no en el mismo índice.

Entrada : test_str1 = ‘pplg’, test_str2 = ‘pineapple’
Salida : [0, 1, 2]
Explicación : ppl se encuentra en la segunda string, pero no en el mismo índice que la primera.

Entrada : test_str1 = ‘pine’, test_str2 = ‘pineapple’
Salida : []
Explicación : se encuentra en otra string en el mismo índice.

Método n. ° 1: usar enumerar() + bucle

En esto, empleamos un bucle anidado para verificar si cada carácter aparece en la segunda string, y luego, si está en otra posición, si se encuentra, se agrega el índice.

Python3

# Python3 code to demonstrate working of 
# Extract indices of Present, Non Index matching Strings
# using loop + enumerate()
  
# initializing strings
test_str1 = 'apple'
test_str2 = 'pineapple'
  
# printing original Strings
print("The original string 1 is : " + str(test_str1))
print("The original string 2 is : " + str(test_str2))
  
# the replaced result 
res = []
for idx, val in enumerate(test_str1):
      
    # if present in string 2
    if val in test_str2:
          
        # if not present at same index
        if test_str2[idx] != val:      
            res.append(idx)
  
# printing result 
print("The extracted indices : " + str(res)) 
Producción

The original string 1 is : apple
The original string 2 is : pineapple
The extracted indices : [0, 1, 2, 3, 4]

Método n. ° 2: usar enumerar() + zip() + comprensión de lista

En esto, realizamos la tarea de obtener índices usando enumerate() y el emparejamiento de ambas strings se realiza usando zip(), las verificaciones condicionales ocurren usando la comprensión de lista.

Python3

# Python3 code to demonstrate working of 
# Extract indices of Present, Non Index matching Strings
# using enumerate() + zip() + list comprehension
  
# initializing strings
test_str1 = 'apple'
test_str2 = 'pineapple'
  
# 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 this problem.
res = [idx for idx, (x, y) in enumerate(zip(test_str1, test_str2)) if x != y and x in test_str2]
  
# printing result 
print("The extracted indices : " + str(res)) 
Producción

The original string 1 is : apple
The original string 2 is : pineapple
The extracted indices : [0, 1, 2, 3, 4]

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 *