概述
今天主要分享一个python实例,大家有兴趣也可以做一下~
需求
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
方法一:遍历全部可能,把有重复的剃掉。
total=0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if ((i!=j)and(j!=k)and(k!=i)):
print(i,j,k)
total+=1
print(total)
方法二:用itertools中的permutations实现
import itertools
sum2=0
a=[1,2,3,4]
for i in itertools.permutations(a,3):
print(i)
sum2+=1
print(sum2)
itertools库 combinations() 和 permutations() 组合 和 排列选项的方法
permutations()是返回可迭代对象的所有数学全排列方式,其中combinations方法重点在组合,permutations方法重在排列。
import itertools
s=[1,2,3]
#combinations和permutations返回的是对象地址,原因是在python3里面,返回值已经不再是list,而是iterators(迭代器)
#print list(itertools.combinations('abc', 2)) 会报错
#组合
print ('itertools.combinations组合输出:')
print([x for x in itertools.combinations('abc',2)])
#排列
print ('itertools.permutations排列输出:')
print([x for x in itertools.permutations(s,3)])
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~