python的几种有用的函数 itertools库

原创
2017/01/22 14:43
阅读数 36
import itertools

b = [('a', -1), ('b', 'b1'), ('c', 'cs')]

#笛卡尔积
list(itertools.product(*b))

[('a', 'b', 'c'),
 ('a', 'b', 'cs'),
 ('a', 'b1', 'c'),
 ('a', 'b1', 'cs'),
 (-1, 'b', 'c'),
 (-1, 'b', 'cs'),
 (-1, 'b1', 'c'),
 (-1, 'b1', 'cs')]


#排列
list(itertools.permutations(b, 2))

[(('a', -1), ('b', 'b1')),
 (('a', -1), ('c', 'cs')),
 (('b', 'b1'), ('a', -1)),
 (('b', 'b1'), ('c', 'cs')),
 (('c', 'cs'), ('a', -1)),
 (('c', 'cs'), ('b', 'b1'))]


#组合,没有重复
list(itertools.combinations(b, 2))
[(('a', -1), ('b', 'b1')),
 (('a', -1), ('c', 'cs')),
 (('b', 'b1'), ('c', 'cs'))]


#组合,有重复
list(itertools.combinations_with_replacement(b, 2))


[(('a', -1), ('a', -1)),
 (('a', -1), ('b', 'b1')),
 (('a', -1), ('c', 'cs')),
 (('b', 'b1'), ('b', 'b1')),
 (('b', 'b1'), ('c', 'cs')),
 (('c', 'cs'), ('c', 'cs'))]

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部