搜索文本中的重复词

Search for repeating word in text

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

我需要在文本/字符串中找到重复次数最多的单词。 例如。 具有以下值的字符串:

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

那么结果需要et\pmostowiak

我该如何完成?

编辑: 我使用的是旧版本的 jython,所以我不能使用带有 Counter 函数的集合库

这会打印出所有找到的值多于一个的值:

d = {}

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

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

我是否可以进一步重复使用它?

一旦你有了一些可迭代的单词容器,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')