Given a list and two elements, x and y find the nearest occurrence index of element x from element y.
Input : test_list = [2, 4, 5, 7, 8, 6, 3, 8, 7, 2, 0, 9, 4, 9, 4], x = 4, y = 6
Output : 1
Explanation : 4 is found at 1, 12 and 14th index, 6 is at 5th index, nearest is 1st index.Input : test_list = [2, 4, 5, 7, 8, 6, 3, 8, 7, 2, 0, 9, 4, 9, 4], x = 7, y = 6
Output : 3
Explanation : 7 is found at 3rd and 8th index, 6 is at 5th index, nearest is 3rd index.
Method : Using list comprehension + loop + index()
In this, we find all indices of y using list comprehension, and then get index of x using index(), post that loop is used to get index difference, the nearest index is returned as result.
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 # occurance between two elements def nearestOccuranceIndex(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: " , nearestOccuranceIndex(input_list, x, y)) |
Output:
The original list is : [2, 4, 5, 7, 8, 6, 3, 8, 4, 2, 0, 9, 4, 9, 4]
Minimum distance index: 8
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.