概要:在平常的编程过程中,往往需要面对排列组合的应用情况,而每次自己编写相应的函数会耗费较多的时间,而python中的itertools库就为我们解决了这个小问题。itertools库中的permutations函数可以输出可迭代对象的全排列情况,而combinations函数可以输出可迭代对象的全组合情况。

正文部分

print("祝大家每天快乐,love and peace!")

1、全排列函数permutations()

①使用前准备:

permutations函数作为itertools库中的函数,要使用它,自然首先要调用itertools库了。(python自带,不需自己另外安装)

import itertools

②语法说明:

result=itertools.permutations(iterable,r),

其中result为对迭代对象处理之后返回的结果,数据类型为'itertools.permutations',如果需要的话,可以通过list()转化为列表。转化为列表之后的元素的数据类型为元组。元素默认排列顺序为迭代对象字典序上的从小到大(自行体会:>);

iterable为需要排列的迭代对象,包括列表、字符串、元组、字典(只对键进行全排列);

r为单个排列元素的长度,不修改的话,默认为迭代对象的元素个数。

③实例演示:

>>> a=[1,2,3]
>>> result=itertools.permutations(a,2)
>>> type(result)
<class 'itertools.permutations'>
>>> list(result)
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
>>> result=list(result)
>>> type(result[0])
<class 'tuple'>
>>> result=itertools.permutations(a)
>>> list(result)
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

2、全组合函数combinations()

①使用前准备:

与permutations函数相同,不再赘述。(绝不是因为我懒,是的话我也不承认(手动狗头)

②语法说明:

result=itertools.combinations(iterable,r),

其中result为迭代对象处理之后返回的结果,数据类型为'itertools.combinations',如果需要的话,可以通过list()转化为列表。转化为列表之后的元素的数据类型为元组。元素默认排列顺序为按照迭代对象字典序上的从小到大;

iterable为需要排列的迭代对象,包括列表、字符串、元组、字典(只对键进行全组合);

r为单个排列元素的长度,必须修改,不然会报错(填一下吧,这个懒咱不偷)。

③实例演示:

>>> a=[1,2,3]
>>> result=itertools.combinations(a,2)
>>> type(result)
<class 'itertools.combinations'>
>>> result=list(result)
>>> result
[(1, 2), (1, 3), (2, 3)]
>>> type(result[0])
<class 'tuple'>
>>> result=list(itertools.combinations(a))
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    result=list(itertools.combinations(a))
TypeError: combinations() missing required argument 'r' (pos 2)
>>> result=list(itertools.combinations(a,3))
>>> result
[(1, 2, 3)]

结语:好了以上就是所有的内容,希望大家多多关注,点赞,收藏,这对我有很大的帮助。国康家安,大家下次再见喽!!!溜溜球~~

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐