我还没有找到任何直接答案。
我需要找到最重复的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]
如果我可以进一步重复使用它?
答案 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')