字符串数字相加减_ghpython_数字排列组合

09d69f320ab9c9711bcc577a4238f9b3.png

好久没敲代码了,今天又看到了老潘的微博python推送,那就继续从老潘的微博开始,作为ghpython的基础练习。

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

这其实是高中数学里最基础的排列组合题,一个A43=4x3x2x1=24就搞定了,但是既然是ghpython咱们就得用python的玩法解。

python里我学习到了两种思路,思路之一是利用三层for循环嵌套来分别遍历1-4数字列表,三层循环遍历的值均不相同所获得数字即为满足要求的数,再利用字符串相加得到数字字符串,至于满足要求的数字的数量,则可以利用一个计数器进行统计,计数器初始值为0,每获得一个满足要求的值,计数器就+1,这样就得到最终的数量统计24了。

思路之二就是利用itertools模块里的permutation函数,permutations函数就是输出列表的全排列组合,长度由第2个参数控制,输出结果为迭代器,最后利用列表推导式将迭代器作为列表输出。

72d3d190aa9d78b25db4f1e59350ecc6.png

8b407fd7db8636480b3e76846703328b.png

#ghpython#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值