首页 > 其他分享 >如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?...

如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?...

时间:2023-04-27 11:38:03浏览次数:34  
标签:10 word ... res 鲁班 记录下来 print index 所示


香雾云鬟湿,清辉玉臂寒。

大家好,我是进阶者。

一、前言

偶然的一次机会,在隔壁群看到一个粉丝问了一道Python实现排列组合基础问题,拿到Python白银交流群问了一下,下图是他的需求:

很明显是个排列组合的问题,直接计算组合结果:C(10,3)=(10×9×8)/(3×2×1)=720/6 =120,答案是120。

二、实现过程

这里【瑜亮老师】直接给了一个代码,如下所示。

from itertools import combinations
word = ['鲁班七号', '鲁班', '鲁班大师', '甄姬', '安琪拉', '王昭君', '韩信', '孙悟空', '程咬金', '猪八戒']
res = [i for i in combinations(word, 3)]
print(res)
print(len(res))

运行结果如下图所示:


如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?..._列表

可以看到运行的结果最后得到的也是120,和手动计算的一致。

后来【const GF = null】自己也给了一个代码,如下图所示:


如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?..._列表_02

这个方法也不错,不过需要提前把排列组合的顺序算出来才行。

后来【瑜亮老师】补充了一个方法,代码如下所示:

word = ['鲁班七号', '鲁班', '鲁班大师', '甄姬', '安琪拉', '王昭君', '韩信', '孙悟空', '程咬金', '猪八戒']
res = [[i, j, k] for i in word[:] for j in word[word.index(i)+1:] for k in word[word.index(j)+1:]]
print(res)
print(len(res))

运行结果如下图所示:

如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?..._python_03

这个方法是用列表推导式+列表切片+index,也是能实现的,改用range(len)也是一样的意思,其实就是3层循环,具体的层级如下所示:

res = []
for i in word[:]:
    for j in word[word.index(i)+1:]:
        for k in word[word.index(j)+1:]:
            res.append([i, j, k])
print(res)

运行结果如下图所示:

如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?..._python_04

总之,完美地解决粉丝的问题啦!

不过话说回来,有现成的模块,直接用就行了,数据量一旦比较大的话,就难顶了,推荐第一种方法!

如果有10个词,我想从中取3个词,然后把所有的10选3的可能统计记录下来,该怎么做?..._列表_05

三、总结

大家好,我是进阶者。这篇文章主要盘点了一个Python实现排列组合的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。


标签:10,word,...,res,鲁班,记录下来,print,index,所示
From: https://blog.51cto.com/u_13389043/6230093

相关文章

  • NC51100 A Simple Problem with Integers
    题目链接题目题目描述YouhaveNintegers,\(A_1,A_2,...,A_N\).Youneedtodealwithtwokindsofoperations.Onetypeofoperationistoaddsomegivennumbertoeachnumberinagiveninterval.Theotheristoaskforthesumofnumbersinagivenint......
  • win10下复制ssh公钥到linux
    win10端已经生成了ssh的公钥。在powershell中使用ssh-copy-id命令,提示如下:ssh-copy-id:Theterm'ssh-copy-id'isnotrecognizedasanameofacmdlet,function,scriptfile,orexecutableprogram.Checkthespellingofthename,orifapathwasincluded,verify......
  • 剑指 Offer 10- I. 斐波那契数列
     分析:偷个懒,上次做的一样的题代码:1classSolution(object):2deffib(self,n):3"""4:typen:int5:rtype:int6"""7ifn<2:8returnn9f=[0foriinra......
  • 2023年最强半导体品牌Top 10!第一名太强大了!
    日前,英国品牌估值咨询公司“品牌金融”(BrandFinance)发布最新“全球半导体品牌价值20强(BrandFinanceSemiconductor202023)”报告。报告显示,在最强品牌排名中,台积电位列第一。BrandFinance通过计算品牌价值,以及透过市场环境、股东权益、商业表现等诸多指标,评估品牌的相对强......
  • PAT Advanced 1002. A+B for Polynomials
    PATAdvanced1002.A+BforPolynomials1.ProblemDescription:Thistime,youaresupposedtofind \(A+B\) where \(A\) and \(B\) aretwopolynomials.2.InputSpecification:Eachinputfilecontainsonetestcase.Eachcaseoccupies2lines,andeac......
  • 柔软的内心在触动着.....
    微信中刚刚看到JSZX公众号,看到他们最近组织的活动,想起原来这个小小的角落以前是由自己负责的,心理五味杂陈,她在自己的一个决策后消失不见了,感受到曾经的嫌弃与负担变成现在渴望而不可及的失落。。。开始翻看自己曾经发布过的文章,活动的场景与写文章的过程还历历在目,熟悉而又遥远......
  • 1.10 数值转化
    第一部曲: 第二部曲:第三部曲:第四部曲:#include<iostream>#include<cmath>usingnamespacestd;constintN=101;intchar_to_num(charch){ if(ch>='0'&&ch<='9')returnch-'0'; elsereturnch-'A'+10;}charnum_......
  • JPG 100 vs JPG 20: What’s The Difference?
    JPG100vsJPG20:What’sTheDifference?Soyou’reintophotographyandwhileyou’reshowingsomeskillandgettingahandleoncamerasettingsfortheperfectshot;whathappenswhenyou’redone?You’veheardtheterm“Jay-peg”splashedaboutandfil......
  • Marbles UVA - 10090
    给定两种购买物品的方案:花费c1元购买n1个物品,或者花费c2c2​元购买n2n2​个物品。方案可以无限使用,询问购买n个物品至少要多少元,若无法恰好购买到n个物品输出failed     #include<iostream>#include<algorithm>#include<cstring>#include<cmath>......
  • 最佳的10大免费销售管理系统
    本文盘点国内外最好用的非免费销售管理系统以及免费销售管理系统。非免费销售管理系统有:1、纷享销客;2、Salesforce;3、微软Dynamics;4、OracleCRM;5、销售易。国外的10款免费销售管理系统有1、HubSpotSales、;2、Freshsales;3、EngageBay;4、ClickUp;5、Snov.io;6、Streak;7、Bitrix24;8、......