Related Articles

Related Articles

Python – Nearest occurrence between two elements in a List
  • Last Updated : 11 Oct, 2020

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

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :