mapper函数,用于查找文本文件中的最小单词

fcipmucu  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(319)

有人能帮我用mapper函数和reducer函数在文本文件中找到最小的单词吗?

import sys #importing from the system

smallest = None  
for line in sys.stdin:  #taking input from the system        
  line = line.strip()   #leaving the unwanted whitespaces                   
  words = line.split("\t")  #spliting the words with delimiter TAB
smallest= min([len(word) for word in words])    #finding the smallest word

print ('%s' % (smallest)) #printing the snallest word
wvmv3b1j

wvmv3b1j1#

我假设你想找到最短的单词,这样做不使用列表理解。
min()接受用于比较的可选键。可以使用lambda函数来获取单词的长度。

words = ['longest-------', 'medium-----', 'shortest-']
shortest = min(words, key=lambda x: len(x))
print(shortest)

另一种方法是使用python的内置sorted()。

words = ['longest-------', 'medium-----', 'shortest-']
shortest = sorted(words)[-1]
print(shortest)

有关内置函数的更多信息,请参阅文档

8qgya5xd

8qgya5xd2#

首先将数据附加到此列表中 k=['1111','222222','a',...] 然后你可以用这个:

print reduce(lambda  x ,y : x if  len(x) < len(y) else y , k)

或者如果不想使用lambda,请使用list的bif函数:

min( word for word in k if word)

这将使您获得列表中最短的元素

相关问题