how to sort a list of tuples with custom function

Ho Yeung Lee jobmattcon at gmail.com
Tue Aug 1 19:26:57 EDT 2017


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 <jobmattcon at 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.




More information about the Python-list mailing list