Python算法正确实现方式介绍

开发 后端 算法
Python算法的操作方法将会在这篇文章中通过一段代码的解读为大家详细介绍。希望可以给又需要的朋友们带来一些帮助。

对于一个经验丰富的Python编程人员来说,实现一个Python算法其实并不困难。我们今天就为大家介绍了这样的操作方法,大家可以以此为学习参考对象,在实践中去总结经验技巧,来熟练掌握这一技术。

Python算法具体操作代码示例:

  1. # -*- coding: UTF8 -*-  
  2. import sys  
  3. import copy  
  4. def init_pass(T):  
  5. C = {}  
  6. for t in T:  
  7. for i in t:  
  8. if i in C.keys():  
  9. C[i] += 1  
  10. else:  
  11. C[i] = 1  
  12. return C  
  13. def candidate_gen(F):  
  14. C = []  
  15. k = len(F[0]) + 1  
  16. for f1 in F:  
  17. for f2 in F:  
  18. if f1[k-2] < f2[k-2]:  
  19. c = copy.copy(f1)  
  20. c.append(f2[k-2])  
  21. flag = True 
  22. for i in range(0,k-1):  
  23. s = copy.copy(c)  
  24. s.pop(i)  
  25. if s not in F:  
  26. flag = False 
  27. break  
  28. if flag and c not in C:  
  29. C.append(c)  
  30. return C  
  31. def compare_list(A,B):  
  32. if len(A) <= len(B):  
  33. for a in A:  
  34. if a not in B:  
  35. return False  
  36. else:  
  37. for b in B:  
  38. if b not in A:  
  39. return False  
  40. return True  
  41. def apriori(T, minsup):  
  42. C = []  
  43. init = init_pass(T)  
  44. keys = init.keys()  
  45. keys.sort()  
  46. C.append(keys)  
  47. n = len(T)  
  48. F = [[]]  
  49. for f in C[0]:  
  50. if init[f]*1.0/n >= minsup:  
  51. F[0].append([f])  
  52. k = 1 
  53. while F[k-1] != []:  
  54. C.append(candidate_gen(F[k-1]))  
  55. F.append([])  
  56. for c in C[k]:  
  57. count = 0;  
  58. for t in T:  
  59. if compare_list(c,t):  
  60. count += 1  
  61. if count*1.0/n >= minsup:  
  62. F[k].append(c)  
  63. k += 1  
  64. U = []  
  65. for f in F:  
  66. for x in f:  
  67. U.append(x)  
  68. return U  
  69. T = [['A','B','C','D'],['B','C','E'],['A','B','C','E'],
    ['B','D','E'],['A','B','C','D']]  
  70. F = apriori(T, 0.9)  
  71. print F 

Python算法相关代码编写方法就为大家介绍到这里。

【编辑推荐】

  1. Python CGI环境在不同操作系统中配置方法
  2. Python解密VBS基本应用代码讲解
  3. 深入探讨Python ConfigParser模块正确应用方式
  4. Python读取输入值相关应用技巧分享
  5. Python自动下载文件正确操作方法
责任编辑:曹凯 来源: 博客园
相关推荐

2010-03-04 11:12:02

Python AOP

2010-02-24 10:07:48

WCF跨越边界

2010-02-25 16:52:12

引用WCF服务

2010-01-25 15:23:12

Android横竖屏切

2010-03-03 17:10:57

Python操作Sql

2010-01-14 17:52:54

VB.NET显示系统信

2010-01-26 17:18:13

Android读写文件

2015-10-29 11:13:23

iOS9使用框

2009-12-03 11:11:57

PHP网站优化

2010-03-05 16:51:01

Python程序转为E

2009-12-29 18:09:00

Silverlight

2010-02-25 10:10:29

WCF使用Header

2009-12-04 12:51:27

PHP functio

2010-02-26 11:22:16

LitwareHR使用

2010-02-24 13:48:44

MSMQ使用WCF

2010-06-09 09:34:11

2010-02-24 10:41:28

WCF服务保护

2009-12-07 18:42:55

PHP与Javascr

2009-12-11 17:52:21

PHP获取博客数据

2010-01-06 15:56:18

.Net Framew
点赞
收藏

51CTO技术栈公众号