首页 > 编程语言 >Python纯代码 取组合数结果

Python纯代码 取组合数结果

时间:2024-09-01 18:47:01浏览次数:10  
标签:__ 组合 Python list 代码 list1 list2 num left

总是在编程题目上碰到取列表中若干元素组合结果的情况,想出过解法但是老是忘,趁现在还记得赶紧写下来

 

大致思路是:通过迭代遍历每个元素位置,选择可能的位置,用yield生成并返回。

 

def get_c(list1, num_left=None, list2=None):
    """
    :param list1: 待取组合数列表
    :param num_left: 待取元素数量
    :param list2: (储存已取元素列表)
    """
    list2 = list2 or []
    num_left = num_left or len(list1)
    for index in range(len(list1)-num_left+1):
        cur_list = list2+[list1[index]]
        if num_left > 1:
            list_left = list1[index+1:]
            yield from get_c(list_left, num_left-1, cur_list)
        else:
            yield cur_list


if __name__ == '__main__':
    # 测试:从5个元素的列表[1~5]中获取所有的3元素组合,共5x2=10个结果
    test_data = [1, 2, 3, 4, 5]
    count = 0
    for i in get_c(test_data, 3):
        print(i)
        count += 1
    print(f'总共{count}个结果')

 

标签:__,组合,Python,list,代码,list1,list2,num,left
From: https://www.cnblogs.com/roundfish/p/18391582

相关文章

  • 【ADXL373、ADXL372】超低功耗加速度计的驱动代码测试
     一、概述    前言:基于对大G值加速度传感计的开发需求,我先后接触了ADXL375、ADXL373、ADXL372,其中ADXL375的示例代码比较丰富,另外两个相对较少,所以我后续就根据数据手册对ADXL373的驱动代码进行了编写(ADXL372的寄存器和ADXL373相似度极高),最终完成了对两种芯片的驱动......
  • [python][selenium][web自动化]元素定位方式
    8种方式:1、id2、class_name3、name4、link_text5、partial_link_text6、tag_name7、css_selector8、XPath1、2、3:元素属性,通常跟7、8去组合使用比较多。4、5:是用可点击的链接的文本去定位。6:是根据元素标签去定位。7、8:最常用的方式,能结合前面6种方式组合去定位,我个人觉得理解后......
  • python threading 线程原理实验
    原理进程之间,编程语言可以不同,内存不共享。需要用socket/IRC/RPC等技术实现进程间通信线程之间,编程语言必须相同,内存共享。类变量self.xxx共享,分叉target的函数内变量private不共享。代码#!/usr/bin/env-Scondarun--live-stream-nbasepythonimportthreadingasthi......
  • Bob大叔直播爆料!代码界的颠覆性创新竟然这么简单?
    一、Bob大叔的故事编程界的传奇人物RobertC.Martin(Bob大叔)将于9月2日18点开启一场前所未有的直播分享。这位世界著名的编程大师、设计模式革命者将与你分享那些不为人知的编程秘籍,颠覆你对代码的所有认知!二、新书:《函数式设计:原则、模式与实践》在软件开发的世界里,面......
  • 堆排序python实现
    一,树与二叉树1,树        树是一种数据结构,比如目录结构。        树是由n各节点组成的集合:    1.如果n=0,那存在一个节点作为数的根节点,其他节点可以分为m个集合,每个集合本身又是一颗树,比如:树的相关概念,比如根节点,叶子节点什么的不做过多介绍......
  • 基于yolov10的学生课堂行为检测系统,支持图像检测,也支持视频和摄像实时检测(pytorch框架
       更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于yolov10的学生课堂行为检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的学生课堂行为检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码......
  • 计算机毕业设计选题推荐-个人健康档案管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-公司考勤管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-果树生长信息管理系统-Java/Python项目实战
    ✨作者主页:IT毕设梦工厂✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-客栈管理系统-酒店预订-民宿管理系统-Java/Python项目实战
    ✨作者主页:IT毕设梦工厂✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......