I am in the middle of writing a large piece of code and I want to shorten a length or
expression.
Let's say we have a list, something like:
farm = ["cow","cow","cow", "hen","hen","hen", "fox","fox","fox", "hen","hen", "hen"]
lookup = ["cow","hen"]
I am supposed to check whether there are three consecutive elements of lookfor
in farm
list.
One way is to do:
for i in range (0,len(farm) - 2):
if ((farm[i] == farm[i+1] == farm[i+2] == lookup[0])
or (farm[i] == farm[i+1] == farm[i+2] == lookup[1])):
# do something
Now if the number of elements in lookup
is small, it can be written in the above way. However, if it is too long the code looks cumbersome and is harder to maintain. Is there a more concise way of writing the code, perhaps in list comprehension format - so that I do not have to manually write to look for all the elements of lookup
?