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程序设计有所帮助。 您可能感兴趣的文章:
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
