标签:
reference :http://www.cnblogs.com/vamei/p/3174796.html
数学不好,测试时会遇到这类问题,对一个黑盒进行输入,N个输入条件,第一个N1种可能输入,
第二个 N2种可能输入....第N个NN种可能输入,
然后呢blabla... ,各种方法,其实不咋的,理论套不上真实业务,大多数都是在那yy.
这里说的是组合,不是组合后yy出测试数据.
1.笛卡尔积
>>> from itertools import * >>> product([‘a‘,‘b‘,‘c‘],‘123‘) <itertools.product object at 0x01342440> #这货是迭代器 >>> list(product([‘a‘,‘b‘,‘c‘],‘123‘)) [(‘a‘, ‘1‘), (‘a‘, ‘2‘), (‘a‘, ‘3‘), (‘b‘, ‘1‘), (‘b‘, ‘2‘), (‘b‘, ‘3‘), (‘c‘, ‘1‘), (‘c‘, ‘2‘), (‘c‘, ‘3‘)] >>>
2.
>>> list(permutations(‘abc‘, 2)) ## 从‘abcd‘中挑选两个元素,比如ab, bc, ... 将所有结果排序,返回为新的循环器。 [(‘a‘, ‘b‘), (‘a‘, ‘c‘), (‘b‘, ‘a‘), (‘b‘, ‘c‘), (‘c‘, ‘a‘), (‘c‘, ‘b‘)]
>>> list(combinations(‘abc‘, 2)) # 从‘abcd‘中挑选两个元素,比如ab, bc, ... 将所有结果排序,返回为新的循环器。 [(‘a‘, ‘b‘), (‘a‘, ‘c‘), (‘b‘, ‘c‘)]
>>> list(combinations_with_replacement(‘abc‘, 2)) # 与上面类似,但允许两次选出的元素重复。即多了aa, bb, cc [(‘a‘, ‘a‘), (‘a‘, ‘b‘), (‘a‘, ‘c‘), (‘b‘, ‘b‘), (‘b‘, ‘c‘), (‘c‘, ‘c‘)]
标签:
原文地址:http://www.cnblogs.com/Citizen/p/4689407.html