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

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

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']]
"""

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

这里有一个作者提供了类似的示例作为参考,请移步:用python实现排列组合——组合 - 知乎 (zhihu.com)

也可以使用 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() 函数即可

相关文章
|
5天前
|
存储 索引 Python
深度解密 Python 列表的实现原理
深度解密 Python 列表的实现原理
31 13
|
1天前
|
开发者 索引 Python
探索Python中的列表推导式
【9月更文挑战第33天】本文通过直观的示例和代码片段,深入浅出地介绍了Python中强大的功能——列表推导式。我们将从基础概念出发,逐步深入到高级应用,最后探讨其性能考量。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。
12 8
|
4天前
|
Python
探索Python中的列表推导式
【9月更文挑战第30天】在编程的世界里,简洁和高效总是我们追求的目标。Python的列表推导式正是这样一把利器,它允许我们在一行代码中生成列表,既清晰又高效。本文将深入浅出地介绍列表推导式的基础知识、高级技巧以及如何避免常见的陷阱,让你的代码更加优雅。
|
5天前
|
索引 Python
python列表删除元素
python列表删除元素
14 1
|
8天前
|
Python
Python 选出列表中特定的元素
Python 选出列表中特定的元素
15 3
|
8天前
|
数据处理 索引 Python
Python列表与元素修改的操作技巧
Python列表提供了丰富的方法和技巧来进行高效的数据操作。熟练运用上述技巧,可以大大提高数据处理的效率和代码的可读性。实践中,根据具体需求灵活选择合适的方法,可以在保证代码效率的同时,也使代码更加简洁明了。
19 2
|
9天前
|
Python
python之列表生成式
python之列表生成式
|
8天前
|
Python
探索Python中的列表推导式
在本文中,我们将深入探讨Python中一个强大且灵活的特性——列表推导式。列表推导式是一种简洁而优雅的方法,用于创建和操作列表。它不仅使代码更易读,还能提高开发效率。通过几个示例,我们将展示列表推导式的多种应用,从基本的操作到复杂的组合,帮助读者更好地理解和利用这一工具。
10 1
|
11天前
|
程序员 数据处理 开发者
探索Python中的列表推导式
【9月更文挑战第23天】在Python编程的海洋中,列表推导式如同一艘快速且灵活的小艇,让开发者能够以简洁的代码处理复杂的数据操作。本文将深入分析列表推导式的工作机制,展示其在不同场景下的强大功能,并探讨如何高效运用这一工具来提升代码的可读性和性能。
|
16天前
|
存储 数据处理 索引
Python列表操作的方法总结
通过掌握上述方法,你可以有效地操作Python列表,完成各种数据处理任务。列表的灵活性和多功能性使其成为Python编程中不可或缺的工具。
20 1
下一篇
无影云桌面