mylist = ["watermelon", "banana", "orange", "apple"]
def is_before(prev_item, target, arr):
return prev_item in arr[:arr.index(target)]
>>>is_before("banana", "apple", mylist)
True
>>>is_before("banana", "watermelon", mylist)
False
Если вы хотите обрабатывать дубликаты, вы можете использовать что-то вроде этого
def find_item_last_index(count, item, arr, index=0):
# A recursive function for finding the last index of an item in a list
if count == 1:
return index + arr.index(item)
return (find_item_last_index(count-1, item, arr[arr.index(item)+1:],
index+arr.index(item)+1))
def is_before(prev_item, target, arr):
return prev_item in arr[: find_item_last_index(arr.count(target), target, arr)]
mylist = ["watermelon", "apple", "banana", "orange", "apple"]
>>>is_before("banana", "apple", mylist)
True
>>>is_before("banana", "watermelon", mylist)
False