Dada una lista y dos elementos, x e y encuentran el índice de ocurrencia más cercano del elemento x del elemento y .
Entrada : test_list = [2, 4, 5, 7, 8, 6, 3, 8, 7, 2, 0, 9, 4, 9, 4], x = 4, y = 6
Salida : 1
Explicación : 4 es encontrado en el índice 1, 12 y 14, 6 está en el índice 5, el más cercano es el índice 1.Entrada : test_list = [2, 4, 5, 7, 8, 6, 3, 8, 7, 2, 0, 9, 4, 9, 4], x = 7, y = 6
Salida : 3
Explicación : 7 es encontrado en el índice 3 y 8, 6 está en el índice 5, el más cercano es el índice 3.
Método: Usar lista de comprensión + bucle + índice()
En esto, encontramos todos los índices de y usando la comprensión de listas, y luego obtenemos el índice de x usando index() , publicamos que el bucle se usa para obtener la diferencia de índice, el índice más cercano se devuelve como resultado.
Python3
# Python3 code to demonstrate working of # Nearest occurrence of x from y in List # Using list comprehension + loop + index() # function to find index of nearest # occurrence between two elements def nearestOccurrenceIndex(test_list, x, y): # checking if both elements are present in list if x not in test_list or y not in test_list: return -1 # getting indices of x x_idx = [idx for idx in range(len(test_list)) if test_list[idx] == x] # getting y index y_idx = test_list.index(y) # getting min_dist index min_dist = 1000000 res = None for ele in x_idx: # checking for min ele, and updating index if abs(ele - y_idx) < min_dist: res = ele min_dist = abs(ele - y_idx) return res # initializing list input_list = [2, 4, 5, 7, 8, 6, 3, 8, 4, 2, 0, 9, 4, 9, 4] # printing original list print("The original list is : " + str(input_list)) # initializing x x = 4 # initializing y y = 6 # printing result print("Minimum distance index: ", nearestOccurrenceIndex(input_list, x, y))
Producción:
La lista original es: [2, 4, 5, 7, 8, 6, 3, 8, 4, 2, 0, 9, 4, 9, 4]
Índice de distancia mínima: 8
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