前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:在Python里进行排列组合

一日一技:在Python里进行排列组合

作者头像
青南
发布2019-08-05 21:03:17
3.3K0
发布2019-08-05 21:03:17
举报
文章被收录于专栏:未闻Code未闻Code

摄影:产品经理

厨师:kingname

在一些比较简单的面试题中,可能需要你对给定的一些字符串或者数字遍历他们的所有排列组合。例如:

给定字母 a b c,生成他们的所有排列:

代码语言:javascript
复制
abcacbbacbcdcabcac

对于这种排列问题,Python自带的 itertools模块已经提供了解决方案:itertools.permutations。其使用方法非常简单:

代码语言:javascript
复制
from itertools import permutations
example = 'abc'result = permutations(example)for answer in result:    print(answer)

返回的数据是一个元组,只要对结果再join一下,就可以变成普通的字符串了:

对于组合,也有两个自带的方法:itertools.combinationsitertools.combinations_with_replacement,其中前者不放回抽取,后者为放回抽取,例如:

代码语言:javascript
复制
from itertools import combinations, combinations_with_replacement
example = '1234'for answer in combinations(example, 3):    print(answer)
for answer in combinations_with_replacement(example, 3):    print(answer)

其运行效果如下图所示:

其中, combinations(example,3)表示,从 example变量中,任取3个字符进行组合。每个元素取出以后不放回。

combinations_with_replacement(example,3)表示从 example的变量中,取出3个字符,每个字符取出来以后,要放回。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档