Python: extrae el elemento de la lista seguido de K

Dada una lista, extraiga los elementos que tienen K como el siguiente elemento.

Entrada : test_list = [2, 3, 5, 7, 8, 5, 3, 5], K = 3 
Salida : [2, 5] 
Explicación : los elementos antes del 3 son 2, 5.

Entrada : test_list = [2, 3, 5, 7, 8, 5, 3, 8], K = 8 
Salida : [7, 3] 
Explicación : los elementos antes del 8 son 7, 3. 

Método #1: Usar bucle

En esto, iteramos la lista y buscamos cada K, y extraemos el elemento que lo precede.

Python3

# Python3 code to demonstrate working of
# Extract elements succeeded by K
# Using loop
  
# initializing list
test_list = [2, 3, 5, 7, 8, 5, 3, 5]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 5
  
# Using loop to extract elements succeeded by K
res = []
for idx in range(len(test_list) - 1):
  
    # checking for succession
    if test_list[idx + 1] == K:
        res.append(test_list[idx])
  
# printing result
print("Extracted elements list : " + str(res))
Producción

The original list is : [2, 3, 5, 7, 8, 5, 3, 5]
Extracted elements list : [3, 8, 3]

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

Otra forma de resolver esta pregunta, en esto, usamos la comprensión de listas como abreviatura para resolver el problema de obtener elementos.

Python3

# Python3 code to demonstrate working of
# Extract elements succeeded by K
# Using list comprehension
  
# initializing list
test_list = [2, 3, 5, 7, 8, 5, 3, 5]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 5
  
# List comprehension used as shorthand
res = [test_list[idx]
       for idx in range(len(test_list) - 1) if test_list[idx + 1] == K]
  
# printing result
print("Extracted elements list : " + str(res))
Producción

The original list is : [2, 3, 5, 7, 8, 5, 3, 5]
Extracted elements list : [3, 8, 3]

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 *