Velocity Reviews > Confused about a list.sort()

Amy G
Guest
Posts: n/a

 01-28-2004
I have a list of numbers... actully I have two lists, List 1 is a list of
number strings and List2 is one of numbers.

List 1 example:
List1 = [ '20040124123000', '20040124123001', '20040125012456']

List 2 example:
List2 = [ 20040124123000L, 20040124123001L, '20040125012456L]

When I try either:
List1 = List1.sort ... or
List2 = List2.sirt

and then...
print List1... or
print List2

I get None.

Why is this?
How do I remedy this problem?

Terry Reedy
Guest
Posts: n/a

 01-28-2004

"Amy G" <(E-Mail Removed)> wrote in message
> I have a list of numbers... actully I have two lists, List 1 is a list of
> number strings and List2 is one of numbers.
>
> List 1 example:
> List1 = [ '20040124123000', '20040124123001', '20040125012456']
>
> List 2 example:
> List2 = [ 20040124123000L, 20040124123001L, '20040125012456L]
>
> When I try either:
> List1 = List1.sort ... or
> List2 = List2.sirt
>
> and then...
> print List1... or
> print List2
>
> I get None.
>
> Why is this?
> How do I remedy this problem?

Read the library reference manual on builtin objects - sequences - lists -
methods.

Seriously.

TJR

David Goodger
Guest
Posts: n/a

 01-28-2004
list.sort() sorts the list in-place; it doesn't return a new list.
Instead of "List1 = List1.sort()" just do "List1.sort()".

See the FAQ entry:
http://www.python.org/doc/faq/genera...he-sorted-list

-- David Goodger

Terry Carroll
Guest
Posts: n/a

 01-28-2004
On Tue, 27 Jan 2004 18:28:09 -0800, "Amy G" <(E-Mail Removed)> wrote:

>I have a list of numbers... actully I have two lists, List 1 is a list of
>number strings and List2 is one of numbers.
>
>List 1 example:
>List1 = [ '20040124123000', '20040124123001', '20040125012456']
>
>List 2 example:
>List2 = [ 20040124123000L, 20040124123001L, '20040125012456L]
>
>When I try either:
>List1 = List1.sort ... or
>List2 = List2.sirt
>
>and then...
>print List1... or
>print List2
>
>I get None.
>
>Why is this?

Yeah, most everyone who uses sort() for the first time gets bit by this.

Sort() sorts the list in place, and returns None:

>>> list1=[20, 40, 60, 80, 10, 30, 50]
>>> list1

[20, 40, 60, 80, 10, 30, 50]
>>> list1.sort()
>>> list1

[10, 20, 30, 40, 50, 60, 80]

So, to sort list1, you just use list1.sort(), not foo = list1.sort()

wes weston
Guest
Posts: n/a

 01-28-2004
Amy,
Switch from windoze to linux and provide screen dumps.

wes@linux:~> python
Python 2.3.3c1 (#3, Dec 26 2003, 16:36:50)
[GCC 3.3.1 (SuSE Linux)] on linux2
>>> list = [3,9,2]
>>> list.sort()
>>> list

[2, 3, 9]

Amy G wrote:
> I have a list of numbers... actully I have two lists, List 1 is a list of
> number strings and List2 is one of numbers.
>
> List 1 example:
> List1 = [ '20040124123000', '20040124123001', '20040125012456']
>
> List 2 example:
> List2 = [ 20040124123000L, 20040124123001L, '20040125012456L]
>
> When I try either:
> List1 = List1.sort ... or
> List2 = List2.sirt
>
> and then...
> print List1... or
> print List2
>
> I get None.
>
> Why is this?
> How do I remedy this problem?
>
>

Dang Griffith
Guest
Posts: n/a

 01-29-2004
On Wed, 28 Jan 2004 15:22:05 GMT, wes weston <(E-Mail Removed)> wrote:

> Switch from windoze to linux and provide screen dumps.

I don't understand part of your comment. Windows can provide screen
dumps also. That's not a reason to switch.
--dang

James Kew
Guest
Posts: n/a

 01-30-2004
"wes weston" <(E-Mail Removed)> wrote in message
newssQRb.28535\$(E-Mail Removed)...
> Switch from windoze to linux and provide screen dumps.
>
> wes@linux:~> python
> Python 2.3.3c1 (#3, Dec 26 2003, 16:36:50)

with a dose of Linux advocacy. Everyone else managed to answer the question
at hand.

FWIW, Python works very nicely at the Windows command-line too, "screen
dumps" and all:

C:\>python
ActivePython 2.3.2 Build 232 (ActiveState Corp.) based on
Python 2.3.2 (#49, Nov 13 2003, 10:34:54) [MSC v.1200 32 bit (Intel)] on
win32
>>>

although I have to admit I usually prefer PythonWin's interactive window.

returning a sorted copy of the list -- did that ever reach a conclusion?

James