Nov-02-2020, 07:25 PM
The best way to check for common elements is to use sets.
A proper solution would be a list of 3 values - since you compare 4 neighbours, but - taking your restraints into account.
A proper solution would be a list of 3 values - since you compare 4 neighbours, but - taking your restraints into account.
from functools import reduce tuples = [(45,50,30,21), (30,9,56,3), (56,10,21,4), (41,30,50,56)] reduce(lambda res, pair: res+ [bool(set(pair[0]).intersection(pair[1]))], zip(tuples, tuples[1:]), [False])Spelling it out in less golf-y way
def common_in_neigbours(tuples): result = [False] for left, right in zip(tuples, tuples[1:]): result.append(bool(set(left).intersection(right))) return result