Python: encuentre la distancia entre el primer y el último elemento par en una lista

Dada una lista, escriba un programa de Python para encontrar el intervalo de elementos pares en la lista, es decir, la distancia entre la primera y la última ocurrencia del elemento par.

Ejemplos:

Entrada : test_list = [1, 3, 7, 4, 7, 2, 9, 1, 10, 11] 
Salida : 5 
Explicación : los elementos pares comienzan en 4 y terminan en 10, abarcando 5 índices.
 

Entrada : test_list = [1, 3, 7, 4, 7, 2, 9, 1, 1, 11] 
Salida : 2 
Explicación : los elementos pares comienzan en 4 y terminan en 2, abarcando 2 índices. 
 

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

En esto, obtenemos todos los índices de todos los elementos pares usando la comprensión de listas y luego realizamos la diferencia del primer y último índice de los elementos coincidentes en la lista.

Python3

# Python3 code to demonstrate working of
# Even elements span in list
# Using list comprehension
 
# initializing Matrix
test_list = [1, 3, 7, 4, 7, 2, 9, 1, 10, 11]
 
# printing original list
print("The original list is : " + str(test_list))
 
# getting even indices
indices_list = [idx for idx in range(
    len(test_list)) if test_list[idx] % 2 == 0]
 
# getting difference of first and last occurrence
res = indices_list[-1] - indices_list[0]
 
# printing result
print("Even elements span : " + str(res))
Producción

The original list is : [1, 3, 7, 4, 7, 2, 9, 1, 10, 11]
Even elements span : 5

Método #2: Usar filter() + lambda

En esto, realizamos la tarea de obtener índices de elementos usando filter() y lambda. 

Python3

# Python3 code to demonstrate working of
# Even elements span in list
# Using filter() + lambda
 
# initializing Matrix
test_list = [1, 3, 7, 4, 7, 2, 9, 1, 10, 11]
 
# printing original list
print("The original list is : " + str(test_list))
 
# getting even indices
indices_list = list(
    filter(lambda x: test_list[x] % 2 == 0, range(len(test_list))))
 
# getting difference of first and last occurrence
res = indices_list[-1] - indices_list[0]
 
# printing result
print("Even elements span : " + str(res))
Producción

The original list is : [1, 3, 7, 4, 7, 2, 9, 1, 10, 11]
Even elements span : 5

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 *