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))
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))
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