I have two lists holding x and y co-ordinates of points where each corresponding element represents a point.
Just an example, X_List = [1, 3, 1, 4], Y_List = [6, 7, 6, 1] then points are (1,6) (3,7) (1,6) (4,1). Thus, the most common point is (1,6).
Here's my code:
for x,y in zip(X_List, Y_List):
MostCommonPoint = max(set(Points), key=Points.count)
zip returns a list of tuples (or an iterator of tuples in Python 3). That means you could just use
zip(X_List, Y_List) instead of
list(zip(X_List, Y_List)) on Python 3), and your code would work. However, it would take quadratic time.
A faster way is to use a
collections.Counter, which is a dict subclass designed for counting things:
import collections # Produce a Counter mapping each point to how many times it appears. counts = collections.Counter(zip(X_List, Y_List)) # Find the point with the highest count. MostCommonPoint = max(counts, key=counts.get)