专业编程基础技术教程

网站首页 > 基础教程 正文

python每日一练之数字组合(python数字组合算法)

ccvgpt 2024-11-16 17:28:47 基础教程 6 ℃

概述

今天主要分享一个python实例,大家有兴趣也可以做一下~


需求

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

python每日一练之数字组合(python数字组合算法)


方法一:遍历全部可能,把有重复的剃掉。

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方面的内容,感兴趣的朋友可以关注下~


Tags:

最近发表
标签列表