• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

python 按照相似性对字符串数组 分组排序

python 水墨上仙 1980次浏览

这个函数可以对数组进行分组排序,排序根据字符串的相似性,用户可以在第二个参数指定相似程度,比如75表示相似程度在75%以上

# [代码名字: Sort list by group]
# [代码分类: Python Core]
# [代码描述: This function takes a list of string and sorts them based on their similarity. The percent at which they match can be defined in the second parameter (default 75%)]
# [代码协议: GPL]
def sortByGroup(lst, percent=75):
    groups = []
    for item in lst:
        match = False
        for g in xrange(len(groups)):
            group = groups[g]
            parent = group[0]
            points = 0.0
            try:
                for x in xrange(len(parent)):
                    if parent[x] == item[x]:
                        points += 1
                if (points / len(parent)) * 100 >= percent:
                    group.append(item)
                    group.sort()
                    match = True
            except:
                pass
        if not match:
            groups.append([item])
    return groups
# Example:
random = [
    'bob1',
    'frank2',
    'bob3',
    'joe2',
    'frank1',
    'bob2',
    'joe1',
    'joe3'
]
groups = sortByGroup(random)
for g in groups:
    for i in g:
        print i
    print '-' * 30

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python 按照相似性对字符串数组 分组排序
喜欢 (0)
加载中……