Python實現迪馬克序列(TD)序列 , 最少代碼


# 對於給定列表 , 用下標4與下標0比較 , 5與1比較 , 6與2比較, 依次后移.所以樣本前四個是沒有TD數字的
list1 = (1, 2, 3, 4, 5, 8, 7, 6, 69, 2, 3, 4, 5, 6, 7, 8, 12, 123, 233, 445, 446, 6, 5, 4, 3)  #list1是測試樣本
list2 = [0, 0, 0, 0]  # list2是存儲TD結果用的,前4個無效用0占位置.因為TD定義是下標第n和n-4比較
top = 0  # 初始化上標
bot = 0  # 初始化下標
for i in range(4, len(list1)):   #為何會從4開始,因為要用index n與index n-4 作比較,比他大才算TD上標1
    if list1[i] > list1[i - 4]:  #由於i本身就是從4開始, 所以就是由4與0比較,i的最后一個循環到列表的最后一個數字,能夠遍歷完
        top += 1
        bot *= 0
        list2.append(top)
    else:
        top *= 0
        bot += 1
        list2.append(-bot)
for c in list2:
    print(c)

  

  說明. list1是樣本列表 , list2是為了存儲TD結果而創建的, 兩個表的長度是一樣的

  這里面最關鍵的是,

  每次出現上TD連續, 則上TD累加1 , 下TD乘以0以便歸零 , 

  當某一次出現上TD斷了之后, 上TD乘以0,下TD加1 ,  任何數乘以0依然是0

  所以,斷了就會重新來過,

  下面是代碼運行結果! ! !

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM