作者aegisqoo (flymetomoon)
看板Python
标题[问题] 排列组合问题或逻辑
时间Sun Oct 15 00:23:33 2017
大家好,我新手也有爬文,有个问题
假设 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://webptt.com/cn.aspx?n=bbs/Python/M.1507998216.A.AF1.html
1F:推 ckc1ark: 你说的应该是itertools.product才对 10/15 01:19
2F:推 ckc1ark: 如果都是0~9 可以用0 ~ 10**N 的每个digit来产生 10/15 01:37
3F:推 flarehunter: 可以用DFS递回实作 10/15 14:06
4F:→ uranusjr: 空两格四格八格我都看过, 缩排 16 格到底是怎麽回事 10/15 19:19
5F:推 f496328mm: 楼上 XD 10/15 22:34
6F:推 goldflower: 如果只是想用python的写法来简化的话那可以用 10/16 21:11
7F:→ goldflower: list comprehension + exec来解决 10/16 21:12
9F:→ goldflower: 第二行要改一下 没写好哈哈 10/16 21:15