作者darkgerm (黑骏)
看板Python
标题Re: [问题] 排除输出重复数值的方法
时间Sat Nov 3 11:19:58 2012
※ 引述《darkgerm (黑骏)》之铭言:
: 排除重复可以用利用 set 的特性,然後先做排序後再把重复的去掉
: import itertools
: x = 4
: ans = set()
: if __name__ == '__main__':
: for data in itertools.product(range(1,x), repeat=7):
: if sum(data) == 9:
: ans.add(tuple(sorted(data)))
: for i in ans:
: print i
: """output:
: (1, 1, 1, 1, 1, 1, 3)
: (1, 1, 1, 1, 1, 2, 2)
: """
上一篇提到不需要产生所有排列
突然想到其实 Python 的 itertools 也有"组合"可用
import itertools
x = 4
if __name__ == '__main__':
for data in itertools.combinations_with_replacement(range(1,x), 7):
if sum(data) == 9:
print data
"""output:
(1, 1, 1, 1, 1, 1, 3)
(1, 1, 1, 1, 1, 2, 2)
"""
--
光明 的背後 是 黑暗
黑暗 的背後 还是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.230.123
1F:→ sofaly:谢谢 程式语言不是我的主科目 但是日後想再研究 希望可以 11/03 11:33
2F:→ sofaly:自己写个课业上小工具 :D 11/03 11:34
3F:→ juiz:这年头很少有人的主科是 programming language 了吧 11/03 13:50