Python: extraiga la string hasta que aparezcan todos los caracteres de otra string

Dada una string, la tarea es escribir un programa Python para extraer hasta encontrar todos los caracteres de otras strings.

Entrada: test_str = «geeksforgeeks es lo mejor para todos los geeks», check_str = «freak»

Salida: geeksforgeeks es mejor para un

Explicación: a es la última letra en freak que está presente en la string. La string se imprime hasta la primera aparición de a.

Entrada: test_str = «geeksforgeeks es lo mejor para todos los geeks», check_str = «geeki»

Salida: geeksforgeeks i

Explicación: i es la última letra en freak que está presente en la string. La string se imprime hasta la primera aparición de i.

Método n.º 1: usar all() + rebanar + bucle

En esto, la substring se construye hasta el índice actual en un bucle, luego, desde la string, todos los elementos de otras strings se verifican usando all(). Si todos están presentes, se devuelve la substring.

Python3

# Python3 code to demonstrate working of
# Extract String till all occurrence of characters from other string
# Using all() + slicing + loop
  
# initializing string
test_str = "geeksforgeeks is best for all geeks"
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing check string
check_str = "freak"
  
for idx in range(1, len(test_str)):
    temp = test_str[:idx]
  
    # checking for all chars of check_str in substring
    if all([char in temp for char in check_str]):
        res = temp
        break
  
# printing result
print("String till all characters occurred : " + str(res))

Producción:

The original string is : geeksforgeeks is best for all geeks
String till all characters occurred : geeksforgeeks is best for a

Método #2: Usando find() + max() + corte

En esto, se itera cada carácter en la string de verificación, se verifica el índice de todos y se registra el máximo de ellos. La substring cortada hasta el índice máximo es una respuesta requerida.

Python3

# Python3 code to demonstrate working of
# Extract String till all occurrence of characters from other string
# Using find() + max() + slice
  
# initializing string
test_str = "geeksforgeeks is best for all geeks"
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing check string
check_str = "freak"
  
# max() find maximum index of all characters
res = test_str[:max([test_str.find(idx) for idx in check_str]) + 1]
  
# printing result
print("String till all characters occurred : " + str(res))

Producción:

The original string is : geeksforgeeks is best for all geeks
String till all characters occurred : geeksforgeeks is best for a

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 *