栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在python中查找给定字符串的所有可能排列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在python中查找给定字符串的所有可能排列

itertools模块具有一个有用的方法,称为permutations()。该文件说:

itertools.permutations(iterable [,r])

返回迭代器中元素的连续r长度排列。

如果未指定r或为None,则r默认为可迭代的长度,并生成所有可能的全长置换。

排列以字典顺序排序。因此,如果对输入的iterable进行排序,则将按排序顺序生成置换元组。

不过,您必须将排列的字母作为字符串连接起来。

>>> from itertools import permutations>>> perms = [''.join(p) for p in permutations('stack')]>>> perms

[“堆栈”,“ stakc”,“ stcak”,“ stcka”,“ stkac”,“ stkca”,“ satck”,“ satkc”,“
sactk”,“ sackt”,“ saktc”,“ sakct”,“
sctak’,’sctka’,’scatk’,’scakt’,’sckta’,’sckat’,’sktac’,’sktca’,’skatc’,’skact’,’skcta’,’skcat’,’tsack’
,“ tsakc”,“ tscak”,“ tscka”,“ tskac”,“ tskca”,“ tasck”,“ taskc”,“ tacsk”,“
tacks”,“ taksc”,“ takcs”,“ tcsak”,“
tcska,’tcask’,tcaks,’tcksa’,’tckas’,tksac’,’tksca’,’tkasc’,’tkacs’,’tkcsa’,’tkcas’,’astck’,’astkc”,“
asctk”,“ asckt”,“ asktc”,“ askct”,“ atsck”,“ atskc”,“ atcsk”,“ atcks”,“
atksc”,“ atkcs”,“ acstk”,“ acskt” ,“ actsk”,“ actks”,“ ackst”,“ ackts”,“
akstc”,“ aksct”,“ aktsc”,“ aktcs”,“ akcst”,“ akcts”,“ cstak”,“ cstka”,“
csatk”,“ csakt”,“ cskta”,“ cskat”,“ ctsak”,“ ctska”,“ ctask”,“ ctaks”,“
ctksa”,“ ctkas”,“ castk”,“ caskt”,“ catsk” ,“ catks”,“ cakst”,“ cakts”,“
cksta”,“ cksat”,“ cktsa”,“ cktas”,“ ckast”,“ ckats”,“ kstac”,“ kstca”,“
ksatc”,’ksact’,’kscta’,’kscat’,’ktsac’,’ktsca’,’ktasc’,’ktacs’,’ktcsa’,’ktcas’,’kastc’,’kasct’,’katsc’,’katcs
‘,’kacst’,’kacts’,’kcsta’,’kcsat’,’kctsa’,’kctas’,’kcast’,’kcats’]


如果您发现自己受到重复的困扰,请尝试将数据拟合到没有重复的结构中,例如

set

>>> perms = [''.join(p) for p in permutations('stacks')]>>> len(perms)720>>> len(set(perms))360

感谢@pst指出这不是我们传统上认为的类型转换,而是更多的对

set()
构造函数的调用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号