On 26/09/11 18:00, StevenJ Hennessy wrote:
Hello,
I am currently struggling with a homework assignment. I need to use Map
reduce to create a dictionary of palendromes -> number of palendrome
for example: the string "bab bab bab cab cac dad" would output:
bab 3
cab 1
I assume this should be cac?
dad 1
here is what I have so far
def palendrome(string):
palendromes = []
for word in string.split(" "):
if (word == word[::-1]):
palendromes.append(word)
return palendromes
This seems pretty fair
string = "abc abd bab tab cab tat yay uaefdfdu"
And the purpose of this is?
print map(lambda x: palendrome(x), ["bab abc dab bab bab dad crap pap
pap "])
#returns a list of lists [['bab', 'bab', 'bab', 'dad', 'pap', 'pap', '']]
That last element seems odd...
Why are you applying map() to a list containing just one element?
#Here is my attempt so far at the reduce section
def p(lists):
for list in lists:
set_h = set(list)
return set_h
The problem description mentioned using a dictionary.
I don't see any dictionaries?
#with the p function I want to create a set of all palendromes found.
Then run a count of the palendroms on the list and make a dict #out of this
print reduce(p, [['bab', 'bab', 'bab', 'dad', 'pap', 'pap', '']])
Again, reduce isn't really doing anything here, you are just applying
the function to a single element in the list.
Am I on the right track?
Sadly no. You are on track to produce a solution of sorts but not one
that matches your original problem description/requirements statement.
You need to use map/reduce/a dictionary. Now, I'm not sure the
map/reduce/dictionary solution is a good idea, but it is the one you
have been asked to write.
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor