Got Homework?
Connect with other students for help. It's a free community.
Here's the question you clicked on:
 0 viewing
voodoo_73
Group Title
Hi everyone, I am trying to solve ps 9, but can't figure it out. Two problems:
1. provided solution is not for the ps 9, as described in the .pdf and .py files,
2. I have problems with using cmp functions to order the dictionary. According to specs cmp functions should return boolean after comparing two values, while in python docs I can see that cmp function should return 1, 0, 1. Given that cmp function is (e.q.) cmpWork(subInfo1, subInfo2) how can I use it in ordered()?
 11 months ago
 11 months ago
voodoo_73 Group Title
Hi everyone, I am trying to solve ps 9, but can't figure it out. Two problems: 1. provided solution is not for the ps 9, as described in the .pdf and .py files, 2. I have problems with using cmp functions to order the dictionary. According to specs cmp functions should return boolean after comparing two values, while in python docs I can see that cmp function should return 1, 0, 1. Given that cmp function is (e.q.) cmpWork(subInfo1, subInfo2) how can I use it in ordered()?
 11 months ago
 11 months ago

This Question is Open

bwCA Group TitleBest ResponseYou've already chosen the best response.1
it will help if we can see your code. the builtin cmp() function has nothing to do with the comparator functions the pset is asking you to make. "Each comparator takes in two (value, work) tuples and returns True if the first tuple is better than the second tuple, and False otherwise. Each comparator has its own definition of “better.” Be sure to read and satisfy the specifications of each comparator." ``` def compareV(t1, t2): if t1[v] > t2[v]: return True return False ``` please use a code pasting site:  http://dpaste.com  http://pastebin.com  https://gist.github.com/  http://pastie.org  http://codepad.org  http://ideone.com  http://www.repl.it/ paste your code there and post the link here. select Python syntax highlighting when u paste.
 11 months ago

voodoo_73 Group TitleBest ResponseYou've already chosen the best response.0
bwCA  thank you for your reply. I guess I asn't clear  I used cmp as an abbreviation of compare  custom compare function to be used in ordered(). My code of compare function: http://dpaste.com/1400404/ I have read a lot about how to sort dictionaries both by key and/or value, but cannot understand how to use custom compare function as 'key' function.
 11 months ago

e.mccormick Group TitleBest ResponseYou've already chosen the best response.0
Just a little note about things like: ``` def compareV(t1, t2): if t1[v] > t2[v]: return True return False ``` Boolean operators are used in if because they produce true or false. Therefore, this if is actually not needed because it is returning the evaluation of the Boolean operator. ``` def compareV(t1, t2): return t1[v] > t2[v] ``` That does the same thing.
 11 months ago

voodoo_73 Group TitleBest ResponseYou've already chosen the best response.0
Just to move forward a bit: given a code: def cmpWork(subInfo1, subInfo2): return subInfo1[1] < subInfo2[1] How should I implement it? sorted(dict.items(), key=cmpWork) this gives an error  missing cmpWork arguments... I know it is silly, but still can't find the answer
 11 months ago

e.mccormick Group TitleBest ResponseYou've already chosen the best response.0
It is defined with arguments. Therefore, it must be called with arguments. ``` def cmpWork(subInfo1, subInfo2): return subInfo1[1] < subInfo2[1] sorted(dict.items(), key=cmpWork(something,something)) ```
 11 months ago

bwCA Group TitleBest ResponseYou've already chosen the best response.1
what does dict.items() return? you either have to modify your conditional statement to accommodate what you are passing it or you have to modify your key function. maybe try this first; ``` def cmpWork(subInfo1, subInfo2): print locals() return subInfo1[1] < subInfo2[1] ```
 11 months ago
See more questions >>>
Your question is ready. Sign up for free to start getting answers.
spraguer
(Moderator)
5
→ View Detailed Profile
is replying to Can someone tell me what button the professor is hitting...
23
 Teamwork 19 Teammate
 Problem Solving 19 Hero
 Engagement 19 Mad Hatter
 You have blocked this person.
 ✔ You're a fan Checking fan status...
Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.