Python全排列操作实例分析
本篇章节讲解Python全排列操作。分享给大家供大家参考,具体如下: step 1: 列表的全排列: 这个版本比较low # -*-coding:utf-8 -*- #!python3 def permutation(li,index): for i in range(index,len(li)): if index == len(li)-1: print(li) return tmp = li[index] li[index] = li[i] li[i] = tmp permutation(li,index+1) tmp = li[index] li[index] = li[i] li[i] = tmp 调用: permutation([1,2,3,4],0) 运行结果:
step2: 字符串的全排列: # -*-coding:utf-8 -*- #!python3 def permutation(str): li = list(str) cnt = 0 #记录全排列的总数 def permutation_list(index): if index == len(li) -1: nonlocal cnt cnt += 1 print(li) for i in range(index,len(li)): li[index],li[i] = li[i],li[index] permutation_list(index+1) li[index],li[index] ret = permutation_list(0) print("共有%d中全排列" % cnt) return ret 备注: 在闭包中,内部函数依然维持了外部函数中自由变量的引用―单元。内部函数不能修改单元对象的值(但是可以引用)。若尝试修改,则解释器会认为它是局部变量。这类似于全局变量和局部变量的关系。如果在函数内部修改全局变量,必须加上 测试: permutation('abcd') 运行结果:
step3 : 使用python标准库 import itertools t = list(itertools.permutations([1,4])) print(t) 运行结果:
可以指定排列的位数: import itertools t = itertools.permutations([1,3) #只排列3位 print(list(t)) 运行结果:
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》 希望本文所述对大家Python程序设计有所帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |