有这么一个问题就是,给定了很多列表,但是列表之间可能是存在某种关联的,比如下面的:

num_list1=[1,1,1,1,1,1,2,2,2,2]

num_list2=[1,2,3,4,5,6,1,2,3,4]

我们认为这是存在隐含关联的一种体现,现在需要用程序来计算出来这种关系,我自己的思路比较简单,可能会存在很多问题,现在也没有太多的想法,只是简单的实现了一下,如果之后有更好的方法或者大家谁有更好的方法可以来补充,下面是具体实现:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:找出列表间隐含的关联关系以及重复模式
'''import numpy as np
from collections import Counterdef find_list_cycle_pattern(num_list1, num_list2):'''给定两个列表,找出列表间隐含的关联关系以及重复模式一般的w_shingle是定长的窗口来切片这里是变长的'''w_list=[]sub_list=[]set_num_list1=list(set(num_list1))set_num_list1.sort()set_num_list2=list(set(num_list2))set_num_list2.sort()for one in set_num_list1:w_list.append(num_list1.count(one))i=0for one_w in w_list:sub_list.append(num_list2[i:i+one_w])i+=one_wmean_list=[]for one_list in sub_list:fre_list=count_ele(one_list)mean_list.append(np.array(fre_list).var())#找出mean_list中出现频数最多的元素threshold=Counter(mean_list).most_common(1)[0][0]if threshold:print 'Find pattern, but not stable'else:print 'Find pattern, and stable'def count_ele(one_list):'''计算一个列表中的每个元素的频数'''fre_list=[]for one in one_list:fre_list.append(one_list.count(one))return fre_listif __name__ == '__main__':num_list1=[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6]num_list2=[1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2]num_list3=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3]num_list4=[1,1,2,2,3,3,4,4,5,5,6,6,7,7,1,1,2,2,3,3,4,4,1,1,2,2,3,3]find_list_cycle_pattern(num_list1, num_list2)find_list_cycle_pattern(num_list3, num_list4)

结果如下:

Find pattern, but not stable
Find pattern, and stable
[Finished in 0.4s]

python找出列表间隐含的关联关系以及重复模式相关推荐

  1. Python找出列表中出现次数最多的元素三种方式

    通过三种方式给大家介绍,具体详情如下所示: 方式一: 原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的key,如果不存在的话,将元素作为key,值为列表中 ...

  2. python找出列表中所以相同元素的索引

    在 Python 中可以使用 enumerate() 函数来找出列表中所有相同元素的索引.enumerate() 函数返回的是一个包含元素索引和元素值的元组,可以在循环中使用.示例如下: my_lis ...

  3. python 找出列表中出现最多的元素_利用Python找出序列中出现最多的元素示例代码...

    前言 Python包含6种内置的序列:列表.元组.字符串 .Unicode字符串.buffer对象.xrange对象.在序列中的每个元素都有自己的编号.列表与元组的区别在于,列表是可以修改,而组元不可 ...

  4. Python找出列表的中只出现一次的元素

    先看题目: 大致是找出a=[1,1,2,3,3,4,5,4,5]类似的列表中出现一次的元素>没错,就是2了. 1.先讲讲思路 2.源代码 3.这里面学习到的知识 1.思路1是这样的,我遍历原列表 ...

  5. python找出列表中最长/短的字符串及他们的长度、下标

      列表中包含多个字符串,当需要找出最长/短字符串的长度.最长/短字符串或者他们的下标时,此代码都能搞定!欢迎 star ^ ^ 代码如下: strs = ["flower", & ...

  6. python找出列表list中重复元素

    代码 from collections import Countera = [29,36,57,12,79,43,23,56,28,11,14,15,16,37,24,35,17,24,33,15,3 ...

  7. Python找出列表中重复元素

    a = [1,1,2,3,4,5,5,6,7] b = [] for i in a:if a.count(i) > 1:b.append(i) set(b) 输出结果:{1, 5}

  8. python将大于输出列表_python找出列表中大于某个阈值的数据段示例

    该算法实现对列表中大于某个阈值(比如level=5)的连续数据段的提取,具体效果如下: 找出list里面大于5的连续数据段: list = [1,2,3,4,2,3,4,5,6,7,4,6,7,8,5 ...

  9. python 列表求最大值_Python找出列表中的最大数和最小数

    Python找出列表中数字的最大值和最小值 思路: 先使用冒泡排序将列表中的数字从小到大依次排序 取出数组首元素和尾元素 运行结果: 源代码: 1 ''' 2 4.编写函数,功能:找出多个数中的最大值 ...

  10. python找最长的单词,Python 找出英文单词列表(list)中最长单词链

    这篇文章主要介绍了Python 找出英文单词列表(list)中最长单词链,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本文主要 ...

最新文章

  1. 独家 | 谷歌医学AI在生活中的精确度(附链接)
  2. 【MATLAB】界面介绍 ( 标题栏 | 选项卡 | 命令窗口 | 编辑器 | 变量命名规则 )
  3. python学习记录(三)
  4. 【光斑定位】空间激光通信、光斑定位、CCD、光斑定位——13000字
  5. Java 蓝桥杯 分解质因数
  6. 一场大火,让云计算巨头的数据中心化为灰烬!10 万Rust 游戏玩家的数据永久丢失,无法恢复
  7. 硬核图书系列:《Spring Boot编程思想(核心篇)》
  8. iOS-工程多target下的Podfile配置
  9. LTCC带通滤波器设计
  10. python下载慢怎么办
  11. 魏俊妮《支持业务发展为核心的HR六大模块体系构建》课程大纲
  12. 6款好用的文字云工具
  13. 微信开发之小程序分享设置图片标题
  14. 11.2 逃课是个需要严肃对待的问题——《逆袭大学》连载
  15. java毕业设计乡镇卫生院信息管理mybatis+源码+调试部署+系统+数据库+lw
  16. python保存图片的常用方法
  17. JavaScript 进阶 35 -- 构造函数、原型对象、实例之间的关系详解
  18. Web性能测试工具大全
  19. 《springboot和mybatis项目使用枚举转换器出现No enum constant及解决方法》
  20. golang中的值类型和引用类型

热门文章

  1. sql server 死锁排查
  2. android文章 - 收藏集 - 掘金
  3. ELK 日志管理系统,初次尝试记录
  4. 快速学习django
  5. codis实现redis分片和在线扩展
  6. redhat 替换centos yum源
  7. 禁止tomcat的Catina.out的累计输出
  8. 7-19 求链式线性表的倒数第K项
  9. 字符串交错组成--很优美的递归算法
  10. Office Web Apps开放测试