首页 > 编程语言 >Python各个列表交叉进行排列组合

Python各个列表交叉进行排列组合

时间:2023-12-23 16:31:33浏览次数:32  
标签:Python list 列表 mp4 video each 排列组合

v_list = [["1.mp4", "2.mp4"], ["3.mp4"], ["6.mp4", "7.mp4"], [], []]

我想把这个列表里面的各个列表,重新排列组合

但是我不知道列表里套了几个列表,套的列表里有几个元素,这样就无法具体固定for循环

后来使用 exec() 函数,间接解决了该问题

不考虑顺序的问题,一共有212=4种排列方式

下面是Python代码

s = ""
hui_che = "    "

v_list = [["1.mp4", "2.mp4"], ["3.mp4"], ["6.mp4", "7.mp4"], [], []]
video_list = []
for i in v_list:
    # 去掉某些列表里面没有元素的列表
    if len(i) == 0:
        continue
    video_list.append(i)

count = 0
each_video = ""
for i in range(len(video_list)):
    each_list = video_list[i]
    tab = "    "
    s += """for v_%s in %s:""" % (i, each_list) + hui_che + '\n' + hui_che
    each_video += "v_%s," % i
    hui_che = hui_che + tab
complex_list = []
each_video = str(each_video).strip(",")
s += """complex_list.append([%s])""" % each_video
语句
print(s)
"""
打印示例结果
for v_0 in ['1.mp4', '2.mp4']:    
    for v_1 in ['3.mp4']:        
        for v_2 in ['6.mp4', '7.mp4']:            
            complex_list.append([v_0,v_1,v_2])
"""
# exec函数是实现这个方法的关键,目的是执行字符串或文件中的Python
exec(str(s))
print(complex_list)
"""
打印示例结果
[['1.mp4', '3.mp4', '6.mp4'], ['1.mp4', '3.mp4', '7.mp4'], ['2.mp4', '3.mp4', '6.mp4'], ['2.mp4', '3.mp4', '7.mp4']]
"""

当然,也可以用递归的方式来实现未知列表之间的排列组合


也可以使用 itertools.product() 对两个列表进行排列组合

import itertools
  
  list1 = ['a', 'b', 'c']
  list2 = [1, 2, 3]
  #学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441  
  # 获取 list1 和 list2 的排列组合
  combinations = itertools.product(list1, list2)
  
  # 打印每个组合
  for combination in combinations:
      print(combination)

如果要对未知个列表进行排列组合,则只需将它们传递给 itertools.product() 函数即可

标签:Python,list,列表,mp4,video,each,排列组合
From: https://blog.51cto.com/u_14246112/8945462

相关文章

  • Python下载与安装教程(很详细)
    前言一、打开python官网点击下载打开官网,进入页面后点击导航中的Downloads进入下载页面二、选择要下载的python版本最新版本的python不能在Windows7的电脑上使用,如果你的系统是win10及以上可以直接下载3.10.x的版本,如果你系统是win7请往下拉在Lookingfor…里找到python3.8......
  • Python数据科学手册笔记:IPython
    目录Ipython帮助文档用符号?来查来文档用??来获取源代码补全方法利用tab利用*加?来补全Ipython快捷键Ipython魔法命令粘贴代码块执行外部代码计算代码运行时间内存分析魔法函数帮助错误和调试控制异常:%xmode调试模型:%debug输入输出历史禁止输出历史输入Ipython和shell命令Ipyth......
  • cmd 运行 python 常用快捷键
    在Windows命令行下运行Python文件,你可以按照以下步骤操作¹:打开Windows下的terminal。快捷键是Win+R,然后在框中输入cmd并回车¹。使用cd命令和dir命令找到要编辑运行的Python文件。如果还未创建,可以使用typenul>*.py创建Python文件(*代指文件名)¹。编辑P......
  • Excel: Python 如何干掉 VBA 系列 丙
    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/FgoU8CxofwY90f3IX2Tpww获取网络动态数据本文开始之前夸过海口,说要演示一下喂养家畜的饲料动态成本,其实由于行业数据具有一定的商业属性,调用这类接口费钱,所以不打算展开了。......
  • python脚本打包api flask pyinstaller
    如果你想将Python脚本打包成API,你可以使用Flask框架³。以下是一个简单的步骤:安装Flask。你可以使用pip来安装Flask³:pipinstallFlask创建一个新的Python文件,例如app.py³。在这个文件中,你可以定义你的API接口³。如果你想将Python脚本打包成可执行程序,你可以使用PyInstaller¹。......
  • python不常用但有用的知识
    目录python解释器什么是python解释器什么是虚拟环境解释器?如何查看python解释器的位置?虚拟环境什么是虚拟环境?virtualenvironment虚拟环境和全局环境的关系有了虚拟环境是否可以删除全局环境?如何创建虚拟环境——方法1?(想看就看看,不看也没关系,反正也不用)......
  • 随机幸运号码自动生成器之Python宝典【上】
    一、前言需求背景描述前面我编写了一段能生成随机幸运号码的代码,但是并不实用,每次去买颜色艳丽的票之前都需要在PyCharm上运行并将幸运号码在控制台打印出来为解决这个问题,尝试使用Python的ttkbootstrap实现简单的号码展示,并根据当前日期展现对应类型(超级彩票、彩色球票)的幸运号码,......
  • Python算法——树的直径
    Python中的树的直径算法详解树的直径是树中任意两个节点之间最长路径的长度。在本文中,我们将深入讨论树的直径问题以及如何通过深度优先搜索(DFS)算法来解决。我们将提供Python代码实现,并详细说明算法的原理和步骤。树的直径树的直径定义为树中任意两个节点之间最长路径的长度。这个......
  • python 最长公共前缀 5种解法
    解法一:水平扫描这是最简单的一种方法,逐个字符比较每个字符串的相应位置,直到遇到不匹配的字符为止。deflongest_common_prefix(strs):ifnotstrs:return""prefix=strs[0]foriinrange(1,len(strs)):whilestrs[i].find(prefix)!=0:......
  • 利用Python select模块实现多路I/O复用
    在开发网络服务时,能够同时处理多个网络连接是非常重要的。传统的方法是为每个连接创建一个新线程或进程,但这在大规模时可能会导致资源耗尽。更高效的做法是使用I/O多路复用,让一个线程能够监视多个文件描述符的状态变化。在Python中,我们可以通过select模块来实现这一功能。本文将介......