weixin_48093947 2023-12-07 12:55 采纳率: 25%
浏览 5
已结题

python识别重复序列

判断一个序列中是否含有重复序列:


def repeat(seq):
    guess = 0
    for i in range(0, len(seq)):
        test_seq=seq[i:len(seq)]
        max_len = len(test_seq) // 2
        for x in range(2+i, max_len):
            if test_seq[i:x] == test_seq[x:2*x]:
                return True
    return guess
list_a = [1,2,111,0,3,1,111,0,3,1,111,0,3,1]

list_b = [67,4,67,4,67,4,67,4,2,9,0]

list_c = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,23,18,10]

print(repeat(list_a))

print(repeat(list_b))

print(repeat(list_c))

print(repeat(range(500)))  # test of no repetition


得到的结果如下:
0
True
True
0
当重复序列前面有其它元素时,列表总是返回guess(0)值,感觉外层循环没有进行循环,这个代码有什么错误码?
部分代码来源于以下文章:https://blog.csdn.net/weixin_35868872/article/details/116181844?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E8%AF%86%E5%88%AB%E4%B8%80%E6%AE%B5%E5%BA%8F%E5%88%97%E6%98%AF%E5%90%A6%E4%B8%BA%E9%87%8D%E5%A4%8D%E5%BA%8F%E5%88%97&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-116181844.142^v96^pc_search_result_base9&spm=1018.2226.3001.4187

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-12-07 12:59
    关注

    其实不需要循环,因为 set(list) 就可以去重,比较下去重和原始的列表长度,一样就是没有重复的,不一样就是有重复的

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月27日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 汇川EASY521plc电子凸轮
  • ¥15 C++ 如何判断设置快捷键来实现隐藏/显示窗口
  • ¥15 关于#材料工程#的问题:有没有具有电子阻挡层和空穴阻挡层的电池仿真silvaco代码例子或者其他器件具有阻挡层例子的silvaco代码(最好还有相关文献)
  • ¥60 基于MATLAB的TAOD算法
  • ¥15 Groimp使用疑问
  • ¥15 MDK–ARM里一直找不到调试器
  • ¥15 oracle中sql查询问题
  • ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
  • ¥100 代写个MATLAB代码,有偿
  • ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图