迭代排列或组合
itertools模块中提供了几个与排列组合相关的函数,可以方便我们对一系列元素进行排列组合才做
排列
permutations函数接受一个元素集合和一个可选的长度作为参数,返回元组序列
组合
combinations函数同样接受一个元素集合,不过combinations需要指定长度
combinations会将已经选择过的元素从候选元素中移除,因此itertools模块中还提供了combinations_with_replacement函数,这个函数允许相同的元素得到多次选择
对不同容器中的元素进行迭代
如果想要迭代的元素被放置在不同的容器中,例如被放置在2个list中,那么我们可以使用itertools中的chain函数来帮助我们的处理
chain接受一个多或多个可迭代对象作为参数,因此我们也可以将list和set一起进行迭代
使用Python中压包技巧,对于元素是list的list的对象,我们可以方便的对list元素中的元素进行操作
固定函数参数值
当一个函数拥有好几个参数,而我们想固定其中的几个参数,使其成为一个“新函数”来使用,这时我们可以使用functools模块中的partial函数,例如我们定义一个有3个参数值的函数,我们固定其中的一个参数
调用f2时,其函数参数输入相当于1, 2, 3,如果我们想要固定其他参数,特别是中间的参数,列如b,那么我们需要将b后面的参数按关键字参数进行传入
固定函数的某个参数,有时候将会带来许多便利,例如我们定义一个计算两个坐标欧几里得距离的函数,随后固定某个点作,可以方便计算其他点到这个点的距离
接下来定义2个函数,分别计算输入的点到原点和点(1, 1)的距离
领取专属 10元无门槛券
私享最新 技术干货