Python Tips 4

迭代排列或组合

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)的距离

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105G14B7T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券