[issue14542] reverse() doesn't reverse sort correctly

2012-04-10 Thread Bill Jefferson

New submission from Bill Jefferson :

reverse() doesn't reverse sort correctly in Python 25 and 27. sort() works 
correctly, but reverse doesn't. The following uses reverse(). Incorrect. Even 
though the date comes first, reverse() sorts on the file name, 
"B57IBMCD_T.zip"

2012-04-05 B57IBMCD_T7.2.3.1.zip
2012-03-23 B57IBMCD_T7.2.2.3.zip
2012-02-22 B57IBMCD_T7.2.2.2.zip
2012-02-13 B57IBMCD_T7.2.2.1.zip
2012-01-23 B57IBMCD_T7.2.1.1.zip
2012-03-28 B57IBMCD_T7.0.4.6.zip
2012-03-08 B57IBMCD_T7.0.4.5.zip
2012-03-03 B57IBMCD_T7.0.4.4.zip
2012-02-29 B57IBMCD_T7.0.4.3.zip
2012-01-06 B57IBMCD_T7.0.4.2.zip
2011-12-08 B57IBMCD_T7.0.4.1.zip
2012-01-06 B57IBMCD_T7.0.3.1.zip
2012-01-06 B57IBMCD_T7.0.2.2.zip
2012-01-06 B57IBMCD_T7.0.2.1.zip
2012-01-06 B57IBMCD_T6.2.4.9.zip
2011-12-07 B57IBMCD_T6.2.4.9-r1.zip
2011-09-13 B57IBMCD_T6.2.4.8.zip
2012-03-28 B57IBMCD_T6.2.4.12.zip
2012-02-15 B57IBMCD_T6.2.4.11.zip
2011-12-06 B57IBMCD_T6.2.4.10.zip

--
components: Demos and Tools, IDLE, Windows
files: EX38.PY
messages: 157988
nosy: billje
priority: normal
severity: normal
status: open
title: reverse() doesn't reverse sort correctly
type: performance
versions: Python 2.7
Added file: http://bugs.python.org/file25172/EX38.PY

___
Python tracker 
<http://bugs.python.org/issue14542>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14542] reverse() doesn't reverse sort correctly

2012-04-11 Thread Bill Jefferson

Bill Jefferson  added the comment:

Eric.
Thanks for answering, but I don't understand the difference between "reversing 
a list" and "reversing it's current values". If I have a list containing 
elements: A, B, C, D and reverse the list's current values, I get: D, C, B, A, 
which is the same as reversing the list. Please explain in more detail. Perhaps 
you can recommend good reference material. Since sort() sorts a list ascending 
(and works correctly), shouldn't reverse() sort the list descending? Am I using 
the wrong function?  I have attached my program:
Bill.

#EX38.PY Get listing of all files in a directory
#http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date-times-in-python
# Answer 37
import os, datetime
topDir = "C:/BrcmCDs"
dateFirst = True # put dates before file names
# DateFirst = False # put file names before dates

def modDate(fileN): # returns a 10-place date string
    t = os.path.getmtime(directory+"/"+fileN)
    return str(datetime.datetime.fromtimestamp(t))[0:10]
    
for directory, dirnames, filenames in os.walk(topDir):
    outList = []
    print "Directory: ", directory
    print

    for fileA in filenames:
    if (fileA[0:10] == "B57IBMCD_T" and
    fileA[-4:] == ".zip"):

    dateString = modDate(fileA)
    if dateFirst:
   fileString = dateString + " " + fileA
    else:
   fileString = fileA + " " + dateString
    
    outList.append(fileString)
    
outList.sort() # sort the file list, ascending
# outList.reverse() # reverse the file list, desending
    
print outList #show all files

# now save list to a file:
# https://bbs.archlinux.org/viewtopic.php?id=75839
f = open("fileList.TXT", "w")
f.write("\n".join(map(lambda x: str(x), outList))) 
f.close()

 
Regards from:
William Jefferson Photography
514 Daniels St., #211
Raleigh, NC 27605
Cell Phone: (919) 931-6681
EMail: shagge...@yahoo.com
Brides & Weddings: http://www.WilliamJeffersonPhotography.com
Special Events: http://www.DancingLight.org


 From: Eric V. Smith 
To: shagge...@yahoo.com 
Sent: Tuesday, April 10, 2012 5:45 PM
Subject: [issue14542] reverse() doesn't reverse sort correctly

Eric V. Smith  added the comment:

list.reverse() does not reverse a list, it reverses its current values.

Help on built-in function reverse:

reverse(...)
    L.reverse() -- reverse *IN PLACE*

>>>

--
nosy: +eric.smith
resolution:  -> invalid
stage:  -> committed/rejected
status: open -> closed

___
Python tracker 
<http://bugs.python.org/issue14542>
___

--

___
Python tracker 
<http://bugs.python.org/issue14542>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14542] reverse() doesn't reverse sort correctly

2012-04-11 Thread Bill Jefferson

Bill Jefferson  added the comment:

Mark and Eric..
Wonderful! I got it now.  I used x.sort(reverse=True) and  
x.sort(reverse=False) and it works just fine. Thanks for your help.
Bill..

 
Regards from:
William Jefferson Photography
514 Daniels St., #211
Raleigh, NC 27605
Cell Phone: (919) 931-6681
EMail: shagge...@yahoo.com
Brides & Weddings: http://www.WilliamJeffersonPhotography.com
Special Events: http://www.DancingLight.org


 From: Mark Dickinson 
To: shagge...@yahoo.com 
Sent: Wednesday, April 11, 2012 8:28 AM
Subject: [issue14542] reverse() doesn't reverse sort correctly

Mark Dickinson  added the comment:

Bill,

list.reverse doesn't do any *sorting* at all;  it merely *reverses* the list 
contents.

[2, 4, 3, 1]

If you want to do a reverse sort, you can either first sort normally and then 
reverse the result, or (easier) use the 'reverse' keyword argument to the 
list.sort method, as follows:

[4, 3, 2, 1]

I suspect Eric meant to write "does not reverse sort" instead of "does not 
reverse".

--
nosy: +mark.dickinson

___
Python tracker 
<http://bugs.python.org/issue14542>
___

--

___
Python tracker 
<http://bugs.python.org/issue14542>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com