转载自:https://blog.csdn.net/cloume/article/details/76399093
功能
Python 的itertools
库中提供了combinations
方法可以轻松的实现排列组合。
测试函数
使用之前我先自己写了个简单的测试,代码如下:
from itertools import combinations
test_data = {'a', 'a', 'a', 'b'}
for i in combinations(test_data, 2):
print i
上面的代码执行后输出为:
('a', 'b')
然后改成了下面这样:
from itertools import combinations
test_data = ['a', 'a', 'a', 'b']
for i in combinations(test_data, 2):
print i
将大括号换成了中括号后输出结果与预期完全一致!
('a', 'a')
('a', 'a')
('a', 'b')
('a', 'a')
('a', 'b')
('a', 'b')
原因分析:
使用大括号{}
创建的是集合或者字典,使用中括号[]
创建的是数组,而集合具有互异性!
所以不管我在{}
里面写了多少个a
,其实我传入到combinations
方法里面的参数值都只是:'a','b'
。