搜索文本中的重复词
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')
我还没有找到任何直接的答案。
我需要在文本/字符串中找到重复次数最多的单词。 例如。 具有以下值的字符串:
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')