[問題] 排列組合問題或邏輯

看板Python作者 (flymetomoon)時間8年前 (2017/10/15 00:23), 編輯推噓6(603)
留言9則, 5人參與, 8年前最新討論串1/3 (看更多)
大家好,我新手也有爬文,有個問題 假設 a=[x,y,z] 且 0 <= x,y,z <= 9 的 x.y.z組合 如下: for x in range(10): for y in range(10): for z in range(10): a=[x,y,z] print(a) 那問題是,有辦法更簡短嗎?,假設今天a=[b,c,d,e,...z] 整個for迴圈就打很長,在網路上有看到指令 itertools中permutations可以直接排列,但想知道假設不用 這個指令,且只能用一般循環指令來寫,有辦法更簡單嗎? 或者是有人可以解釋itertools.permutations的原始代碼邏輯嗎? 謝謝大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.27.98.1 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1507998216.A.AF1.html

10/15 01:19, 8年前 , 1F
你說的應該是itertools.product才對
10/15 01:19, 1F

10/15 01:37, 8年前 , 2F
如果都是0~9 可以用0 ~ 10**N 的每個digit來產生
10/15 01:37, 2F

10/15 14:06, 8年前 , 3F
可以用DFS遞迴實作
10/15 14:06, 3F

10/15 19:19, 8年前 , 4F
空兩格四格八格我都看過, 縮排 16 格到底是怎麼回事
10/15 19:19, 4F

10/15 22:34, 8年前 , 5F
樓上 XD
10/15 22:34, 5F

10/16 21:11, 8年前 , 6F
如果只是想用python的寫法來簡化的話那可以用
10/16 21:11, 6F

10/16 21:12, 8年前 , 7F
list comprehension + exec來解決
10/16 21:12, 7F

10/16 21:14, 8年前 , 8F
大概這樣 有點蠢XD
10/16 21:14, 8F

10/16 21:15, 8年前 , 9F
第二行要改一下 沒寫好哈哈
10/16 21:15, 9F
文章代碼(AID): #1PuZe8hn (Python)
文章代碼(AID): #1PuZe8hn (Python)