我目前在努力完成一项任务。其解决方案将输入一个txt文件,并通过计算回文数及其频率来运行。我需要使用Map Reduce来实现。
例如:字符串"bab bab bab cab cac dad"会输出:
bab 3
cab 1
dad 1
这是我目前的内容
def palindrome(string):
palindromes = []
for word in string.split(" "):
if (word == word[::-1]):
palindromes.append(word)
return palindromes
string = "abc abd bab tab cab tat yay uaefdfdu"
print map(lambda x: palindrome(x), ["bab abc dab bab bab dad crap pap pap "])
当前打印
[['bab', 'bab', 'bab', 'dad', 'pap', 'pap', '']]
这是我目前在reduce部分的尝试。
def p(lists):
for list in lists:
set_h = set(list)
return set_h
使用p函数,我想创建一个包含所有回文的集合。然后在列表上运行回文计数,并将其转换为字典。
print reduce(p, [['bab', 'bab', 'bab', 'dad', 'pap', 'pap', '']])
我是否在正确的轨道上?