Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-11 Thread russ . pobox
Just try this in the interpreter and see.

for key, value in sorted(months.items(), key=lambda x:x[1]):
print %s %s % (value, key)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread Νικόλαος Κούρας
Τη Δευτέρα, 10 Ιουνίου 2013 12:40:01 μ.μ. UTC+3, ο χρήστης Ulrich 
Eckhardt έγραψε:


for key in sorted( months.keys() ):
print('''
option value=%s %s /option
''' % (months[key], key) )

this in fact works, it sorts the dict by its keys() was mistaken before 
but the sorting aint correct because its done alphabetically and not by 
integer value.

We need values.


for key in sorted( months.values() ):
print('''
option value=%s %s /option
''' % (key, what should_we put here_to get the actual months 
name? )

--
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread Ulrich Eckhardt

Am 10.06.2013 12:57, schrieb Νικόλαος Κούρας:

 Τη Δευτέρα, 10 Ιουνίου 2013 12:40:01 μ.μ. UTC+3, ο χρήστης Ulrich
Eckhardt έγραψε:

for key in sorted( months.keys() ):
 print('''
 option value=%s %s /option
 ''' % (months[key], key) )

this in fact works, it sorts the dict by its keys()


No, it does not sort the dict. Please slow down, relax and take a look 
at the documentation of sorted(). You are jumping to conclusions based 
on flawed expectations and assumptions, which can only yield garbage in 
the end.


Uli

--
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread Νικόλαος Κούρας
Τη Δευτέρα, 10 Ιουνίου 2013 4:14:33 μ.μ. UTC+3, ο χρήστης Ulrich Eckhardt 
έγραψε:
 Am 10.06.2013 12:57, schrieb Νικόλαος Κούρας:
 
   Τη Δευτέρα, 10 Ιουνίου 2013 12:40:01 μ.μ. UTC+3, ο χρήστης Ulrich
 
  Eckhardt έγραψε:
 
 
 
  for key in sorted( months.keys() ):
 
   print('''
 
   option value=%s %s /option
 
   ''' % (months[key], key) )
 
 
 
  this in fact works, it sorts the dict by its keys()
 
 
 
 No, it does not sort the dict. Please slow down, relax and take a look 
 
 at the documentation of sorted(). You are jumping to conclusions based 
 
 on flawed expectations and assumptions, which can only yield garbage in 
 
 the end.

it doe ssort the dict at least for keys() why not for values() too?



for key in sorted( months.keys() ): 
 print(''' 
 option value=%s %s /option 
 ''' % (months[key], key) ) 

this in fact works, it sorts the dict by its keys() was mistaken before 
but the sorting aint correct because its done alphabetically and not by 
integer value. 
We need value
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread Νικόλαος Κούρας
Τη Δευτέρα, 10 Ιουνίου 2013 4:14:33 μ.μ. UTC+3, ο χρήστης Ulrich Eckhardt 
έγραψε:
 Am 10.06.2013 12:57, schrieb Νικόλαος Κούρας:
 
   Τη Δευτέρα, 10 Ιουνίου 2013 12:40:01 μ.μ. UTC+3, ο χρήστης Ulrich
 
  Eckhardt έγραψε:
 
 
 
  for key in sorted( months.keys() ):
 
   print('''
 
   option value=%s %s /option
 
   ''' % (months[key], key) )
 
 
 
  this in fact works, it sorts the dict by its keys()
 
 
 
 No, it does not sort the dict. Please slow down, relax and take a look 
 
 at the documentation of sorted(). You are jumping to conclusions based 
 
 on flawed expectations and assumptions, which can only yield garbage in 
 
 the end.
 
 
 
 Uli

It soerts it just fine by keys() alpabeticall but this isnt what i want, i need 
sorting by values()

for key in sorted( months.values() ): 
 print(''' 
 option value=%s %s /option 
 ''' % (key, what should_we put here_to get the actual months 
name? ) 

the value is a vale form  the values in order, but how do i specify the 
correspondign key to that value?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread Νικόλαος Κούρας
Since dict.keys() return a list of the keys in the dict and the keys are 
associated with the dict's values why doesnt it work the other way around too?

I'm talking about this:
[code]
for key in sorted( months.keys() ): 
 print(''' 
 option value=%s %s /option 
 ''' % (months[key], key) ) 

[/code]

I could have uses ordered by kees but that orders key alphabetically, and 
montha re not displayed in the usual row. ordering by values though it would be 
a perfect fit.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread Ulrich Eckhardt

Am 10.06.2013 15:37, schrieb Νικόλαος Κούρας:

Τη Δευτέρα, 10 Ιουνίου 2013 4:14:33 μ.μ. UTC+3, ο χρήστης Ulrich Eckhardt 
έγραψε:

Am 10.06.2013 12:57, schrieb Νικόλαος Κούρας:


Τη Δευτέρα, 10 Ιουνίου 2013 12:40:01 μ.μ. UTC+3, ο χρήστης Ulrich

Eckhardt έγραψε:







for key in sorted( months.keys() ):



  print('''



  option value=%s %s /option



  ''' % (months[key], key) )







this in fact works, it sorts the dict by its keys()




No, it does not sort the dict. Please slow down, relax and take a look
at the documentation of sorted(). You are jumping to conclusions based
on flawed expectations and assumptions, which can only yield garbage in
the end.


it doe ssort the dict at least for keys() why not for values() too?


Well, because it does not sort the dict, it sorts the sequence that you 
pass into sorted(). The dictionary that you retrieved from is not 
modified. Which part of the documentation is unclear to you? Did you 
even bother reading the docs?




for key in sorted( months.keys() ):
  print('''
  option value=%s %s /option
  ''' % (months[key], key) )

this in fact works, it sorts the dict by its keys() was mistaken before
but the sorting aint correct because its done alphabetically and not by
integer value.


Listen: Computers will always do what you tell them to. If you tell them 
garbage, they will do garbage. If that is not what you want them to do, 
it's your own fault. That means that you have to precisely(!!!) describe 
what you want when talking to a computer. The computer will not try to 
guess what you might have wanted.


Now, the above claim, that it sorts the dict by its keys() is simply 
wrong. Instead, it outputs the dictionary's elements sorted by their 
key. There is a fine distinction between the two. I know what you mean, 
because I'm a human being and I can copy with your vague description, 
but the computer doesn't.


Good luck, I'm outta here

Uli

--
http://mail.python.org/mailman/listinfo/python-list


Re: Reply to post 'Tryign to add a valkue to a set'

2013-06-10 Thread russ . pobox
for key, value in sorted(months.items(), key=lambda x:x[1]):
print('\toption value%s%s/option'\n % (value, key))


Explanation:
- - - - - - 
dict.items is a method associated with dicts just like dict.keys or 
dict.values, and returns a list of (key, value) pairs.

sorted and some other builtin functions have an optional key argument, which 
tells the function what exactly to look at when sorting the sequence. (I say 
sequence because you can sort a string or tuple or dict and get a list back in 
return). In this case we use a simple lambda function to tell it to look at the 
value not the key (i.e. (key, value)[1] returns value)

Alternatively you could do this.

def get_value(item):
return item[1]

for key, value in sorted(months.items(), key=get_value):
...etc...

You might also wonder what this would do

for key, value in sorted(months.items()):
...etc...

Which becomes a question of what would something like this do

sorted([(1,3), (2,2), (3,1)])

Well sorted is a function that expects to get some iterable (sequence of some 
kinda items) to sort. If those items happens to be sequences themselves, like 
(key, value) which is a sequence of two items, then it's only going to care 
about the first item and ignore the rest (i.e ignore value).

So the above will return
[(1,3), (2,2), (3,1)] which as far as sorted() is concerned, is already sorted.


About the string being printed:
- - - - - - - - - - - - - - - - 
I'm not sure why or if you want a single quotation around the entire element to 
be printed as well but if so then that's how I'd do it. The \t is for a tab. 
You also don't have to worry about adding newlines because print will print 
each statement on a newline anyways by default unless you tell it otherwise by 
specifying the sep argument.

Sorry my first post, I said allot didn't I.
-- 
http://mail.python.org/mailman/listinfo/python-list