Given two lists and check list, test if for each element in check list, elements occur in similar index in 2 lists.
Input : test_list1 = [2, 6, 9, 7, 8], test_list2 = [2, 7, 9, 4, 8], check_list = [9, 8, 7] Output : False Explanation : 7 is at 4th and 2nd place in both list, hence False. Input : test_list1 = [2, 6, 9, 7, 8], test_list2 = [2, 6, 9, 4, 8], check_list = [9, 8, 6] Output : True Explanation : All from checklist at similar index, hence True.
Method #1 : Using loop
In this, we iterate for all the elements in list, if elements are different and is present in check list, then False is returned.
Python3
# Python3 code to demonstrate working of # Check if elements index are equal for list elements # Using loop # initializing lists test_list1 = [ 2 , 6 , 9 , 7 , 8 ] test_list2 = [ 2 , 7 , 9 , 4 , 8 ] # printing original lists print ( "The original list 1 : " + str (test_list1)) print ( "The original list 2 : " + str (test_list2)) # initializing check_list check_list = [ 9 , 8 , 2 ] res = True for idx, ele in enumerate (test_list1): # check for indifference and containment if test_list1[idx] ! = test_list2[idx] and ele in check_list: res = False break # printing result print ( "Are elements at same index for required instances ?: " + str (res)) |
The original list 1 : [2, 6, 9, 7, 8] The original list 2 : [2, 7, 9, 4, 8] Are elements at same index for required instances ?: True
Time Complexity: O(n), where n is the length of the input list.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the list “test_list”.
Method #2 : Using zip() + all() + generator expression
In this, we pair like indices using zip() and then all() is used to check for all indices, generator expression is used for iteration logic.
Python3
# Python3 code to demonstrate working of # Check if elements index are equal for list elements # Using zip() + all() + generator expression # initializing lists test_list1 = [ 2 , 6 , 9 , 7 , 8 ] test_list2 = [ 2 , 7 , 9 , 4 , 8 ] # printing original lists print ( "The original list 1 : " + str (test_list1)) print ( "The original list 2 : " + str (test_list2)) # initializing check_list check_list = [ 9 , 8 , 2 ] # checking for all elements equal in check list using all() res = all (a = = b for a, b in zip (test_list1, test_list2) if a in check_list) # printing result print ( "Are elements at same index for required instances ?: " + str (res)) |
The original list 1 : [2, 6, 9, 7, 8] The original list 2 : [2, 7, 9, 4, 8] Are elements at same index for required instances ?: True
Method#3:Using list comprehension
Python3
# initializing lists test_list1 = [ 2 , 6 , 9 , 7 , 8 ] test_list2 = [ 2 , 7 , 9 , 4 , 8 ] # printing original lists print ( "The original list 1 : " + str (test_list1)) print ( "The original list 2 : " + str (test_list2)) # initializing check_list check_list = [ 9 , 8 , 2 ] # Using a list comprehension and the all function # all returns True if all elements in the iterable are True, otherwise False res = all (test_list1[i] = = test_list2[i] for i in range ( len (test_list1)) if test_list1[i] in check_list) # printing result print ( "Are elements at same index for required instances ?: " + str (res)) #This code is contributed by Vinay Pinjala. |
The original list 1 : [2, 6, 9, 7, 8] The original list 2 : [2, 7, 9, 4, 8] Are elements at same index for required instances ?: True
Time Complexity: O(n)
Auxiliary Space: O(n)