Re: [問題] 遍歷對戰效率問題

看板Python作者 (poototo)時間8月前 (2023/08/03 19:52), 8月前編輯推噓0(001)
留言1則, 1人參與, 8月前最新討論串3/3 (看更多)
參考,可再自行排除一些絕不符合條件的對戰歷程 ==================================== from itertools import combinations, product # teams = "ABCDEF" # 隊伍名稱 fights = list(combinations(teams, 2)) # 對戰組合 results = ["201"] * len(fights) # 每種對戰組合的三種結果 2 win,0 lose,1 tie for rs in product(*results): # rs:所有對戰組合結果的一次歷程,共3^對戰組合數 scores = dict.fromkeys(teams, 0) # 初始化隊伍積分 for r, f in zip(rs, fights): scores[f[0]] += int(r) scores[f[1]] += 2 - int(r) if sorted(scores.values()).index(scores["A"]) >= 4: # 積分篩選 print(rs, scores) ====================================== ※ 引述《shingai (吸收正能量)》之銘言: : 如原題,算分享(請鞭小力點,小弟真的不是太熟語法), : 版上高手若有閒暇之餘,再行補充或賜教 : 改六隊試試看變成如下寫法: : https://pastebin.com/Yv51vsrY : 後續我是想寫個函式,丟入輸出list forms,D,E,F排名最後三名的時候,第三名不論 : 是A,還是B,還是C,計算出第三名的最小積分值 : 但目前沒有好辦法@@ : 補充: : 為何會改六隊,主要原因是迴圈數太多,jupyter回應我 : SyntaxError: too many statically nested blocks : 像這個有更好的解決辦法嗎? 還是太多迴圈就無解? 先謝謝高手願意熱心分享了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.112.112 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1691063556.A.0CE.html ※ 編輯: poototo (123.193.62.50 臺灣), 08/05/2023 23:01:58

08/07 16:07, 8月前 , 1F
3Q~高手的資料結構概念感覺很強...寫法迥然不同!!
08/07 16:07, 1F
文章代碼(AID): #1aovK43E (Python)
文章代碼(AID): #1aovK43E (Python)