在文本中搜索重复单词

时间:2016-10-21 11:21:54

标签: jython

我还没有找到任何直接答案。

我需要找到最重复的text / string中的单词。 例如。 具有以下值的字符串:

000587\local_users
000587\local_users
4444\et-4444
et\pmostowiak
et\pmostowiak
et\pmostowiak

然后结果需要是et \ pmostowiak

我该如何做到这一点?

编辑: 我使用旧版本的jython,因此我无法使用具有计数器功能的集合库

这将打印所有找到的值超过1的值:

d = {}

for x in users: 
  d[x] = x in d

_result = [x for x in d if d[x]] # [1]

如果我可以进一步重复使用它?

1 个答案:

答案 0 :(得分:2)

一旦你有一些可迭代的单词容器,collections完全符合你的需要。

>>> import collections
>>> words = ['000587\local_users', '000587\local_users', '4444\et-4444', 'et\pmostowiak', 'et\pmostowiak', 'et\pmostowiak']
>>> print collections.Counter(words).most_common(1)
[('et\\pmostowiak', 3)]

这引出了如何split字符串的问题。 这有效:

>>> str = """000587\local_users
... 000587\local_users
... 4444\et-4444
... et\pmostowiak
... et\pmostowiak
... et\pmostowiak"""
>>> str.split('\n')
['000587\\local_users', '000587\\local_users', '4444\\et-4444', 'et\\pmostowiak', 'et\\pmostowiak', 'et\\pmostowiak']
>>> words = str.split('\n')