Confused about a list.sort()

A

Amy G

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?
 
T

Terry Reedy

Amy G said:
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
 
T

Terry Carroll

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()
 
W

wes weston

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
Type "help", "copyright", "credits" or "license" for more information.
>>> list = [3,9,2]
>>> list.sort()
>>> list
[2, 3, 9]



Amy said:
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?
 
D

Dang Griffith

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
 
J

James Kew

wes weston said:
Switch from windoze to linux and provide screen dumps.

wes@linux:~> python
Python 2.3.3c1 (#3, Dec 26 2003, 16:36:50)

Ah, that's nice: a simple question about list.sort()'s behaviour answered
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
Type "help", "copyright", "credits" or "license" for more information.
although I have to admit I usually prefer PythonWin's interactive window.

ISTR discussion on python-dev about adding a sorted() method to list,
returning a sorted copy of the list -- did that ever reach a conclusion?

James
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top