码迷,mamicode.com
首页 > 其他好文 > 详细

输入数据组合

时间:2015-07-30 16:29:03      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!