how to write this distance function in sort there are the syntax error
On Wednesday, August 2, 2017 at 6:03:13 AM UTC+8, Glenn Linderman wrote: > On 8/1/2017 2:10 PM, Piet van Oostrum wrote: > > Ho Yeung Lee <jobmatt...@gmail.com> writes: > > > >> def isneighborlocation(lo1, lo2): > >> if abs(lo1[0] - lo2[0]) < 7 and abs(lo1[1] - lo2[1]) < 7: > >> return 1 > >> elif abs(lo1[0] - lo2[0]) == 1 and lo1[1] == lo2[1]: > >> return 1 > >> elif abs(lo1[1] - lo2[1]) == 1 and lo1[0] == lo2[0]: > >> return 1 > >> else: > >> return 0 > >> > >> > >> sorted(testing1, key=lambda x: (isneighborlocation.get(x[0]), x[1])) > >> > >> return something like > >> [(1,2),(3,3),(2,5)] > > I think you are trying to sort a list of two-dimensional points into a > > one-dimensiqonal list in such a way thet points that are close together > > in the two-dimensional sense will also be close together in the > > one-dimensional list. But that is impossible. > It's not impossible, it just requires an appropriate distance function > used in the sort. -- https://mail.python.org/mailman/listinfo/python-list