Steven, Visit the URL links below to view the latest revised code:
Output: 09:14:16 Syntax message: val is not defined Raw data code, available at http://tinyurl.com/ob89r9p Embedded data code, available at http://tinyurl.com/qhm4ppq Visualization URL link, available at http://tinyurl.com/ozzmffy Thanks, Hal On Tue, Aug 11, 2015 at 7:01 PM, Steven D'Aprano <[email protected]> wrote: > On Tue, Aug 11, 2015 at 04:24:39PM -0700, Ltc Hotspot wrote: > > Hi Everyone, > > > > Why is there an AttributeError, line 12, below : 'tuple' object has no > > attribute 'sort'? > > Haven't I see this exact same question, complete with solutions, on the > python-list mailing list? > > The answer found there is that you are trying to sort the wrong value. > You are trying to sort an immutable (that is, unchangeable) (key, value) > tuple, which includes one string and one number. And then you ignore the > sorted result! > > You have: > > ncount = (key,val) > ncount.sort(reverse=True) > print key,val > > > Sorting (key, val) cannot work, because that is an immutable tuple. > Turning it into a list [key, val] now makes it sortable, but that > doesn't do what you want: Python 2 always sorts ints ahead of strings, > regardless of their actual values. But even if you did meaningfully sort > the list [key, val], having done so you don't look at the results, but > print the key and val variables instead, which are unchanged. > > Changing the order of items in a list does not, and can not, change the > variables that were used to build that list. > > If that is not clear, study this example: > > py> a = 999 > py> b = 1 > py> alist = [a, b] # construct a list from a and b > py> print alist > [999, 1] > py> alist.sort() # change the order of items in the list > py> print alist > [1, 999] > py> print a, b # have a and b changed? > 999 1 > > > The actual solution needed is, I think, sorting the entire collection: > > items = sorted(count.items()) > for key, val in items: > print key,val > > > > -- > Steve > _______________________________________________ > Tutor maillist - [email protected] > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
