Ok, this approach does not work well always...

>>> l=['192.168.10.10','192.168.10.8','192.168.10.1','192.168.12.1']
>>> sorted(l)
['192.168.10.1', '192.168.10.10', '192.168.10.8', '192.168.12.1']

So something like Anand C's solution is required.

--Anand

On Thu, May 8, 2008 at 2:47 PM, Anand Balachandran Pillai
<[EMAIL PROTECTED]> wrote:
> Do you really need any kind of additional processing ?
>
>  The basic sort algorithm is smart enough to do this by itself,
>  >>> l=['192.168.1.1','172.18.13.2','192.168.3.2','172.19.2.1']
>  >>>l.sort()
>  >>>l
>  ['172.18.13.2', '172.19.2.1', '192.168.1.1', '192.168.3.2']
>
>  or use sorted(...) if you don't want to modify in place...
>
>  Here is an even closer example to demo this...
>  >>> 
> l=['192.168.12.21','192.168.12.15','192.168.11.10','192.168.10.5','192.168.15.1','192.167.10.1']
>  >>> sorted(l)
>  ['192.167.10.1', '192.168.10.5', '192.168.11.10', '192.168.12.15',
>  '192.168.12.21', '192.168.15.1']
>
>
>  --Anand
>
>
>
>  On Thu, May 8, 2008 at 2:41 PM, Anand Chitipothu <[EMAIL PROTECTED]> wrote:
>  > On Thu, May 8, 2008 at 11:53 PM, Kushal Das <[EMAIL PROTECTED]> wrote:
>  >
>  > > Hi,
>  >  >  What is the best way to sort IP numbers
>  >  >  numbers like
>  >  >  192.168.20.1
>  >  >  192.168.1.1
>  >  >  172.18.13.2
>  >
>  >  ips = ['192.168.20.1', '192.168.1.1', '172.18.13.2']
>  >  sorted(ips, key=lambda ip: [int(x) for x in ip.split('.')])
>  >
>  >  # ips.sort(key=lambda ip: [int(x) for x in ip.split('.')]) if you want
>  >  to sort in-place.
>  >
>  >
>  > _______________________________________________
>  >  BangPypers mailing list
>  >  BangPypers@python.org
>  >  http://mail.python.org/mailman/listinfo/bangpypers
>  >
>
>
>
>  --
>  -Anand
>



-- 
-Anand
_______________________________________________
BangPypers mailing list
BangPypers@python.org
http://mail.python.org/mailman/listinfo/bangpypers

Reply via email to