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
> > [email protected]
> > http://mail.python.org/mailman/listinfo/bangpypers
> >
>
>
>
> --
> -Anand
>
--
-Anand
_______________________________________________
BangPypers mailing list
[email protected]
http://mail.python.org/mailman/listinfo/bangpypers