转:python编程实现:分别从三个(多个)列表中抽取一个元素,组成新的列表,类似组合问题的求解

python编程实现:分别从三个(多个)列表中抽取一个元素,组成新的列表,类似组合问题的求解_从三个list各取一个元素,得到所有组合_会呼吸的梦的博客-CSDN博客

源代码:


# 例:从列表list1, list2, list3 中每次各抽取一个元素,再将抽取的元素来组成新的列表
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
list3 = [11, 12, 13, 14, 15]
index_set = []
temp_set = []
result_set = []
for i in list1:
    for j in list2:
        for k in list3:
            index_set.append(i)
            index_set.append(j)
            index_set.append(k)
for m in range(0, len(index_set), 3):
    temp_set.append(index_set[m])
    temp_set.append(index_set[m + 1])
    temp_set.append(index_set[m + 2])
    result_set.append(temp_set)
    temp_set = []
print(len(result_set))
print(result_set)
# 输出的结果:
125
[[1, 6, 11], [1, 6, 12], [1, 6, 13], [1, 6, 14], [1, 6, 15], [1, 7, 11], [1, 7, 12], [1, 7, 13],
 [1, 7, 14], [1, 7, 15], [1, 8, 11], [1, 8, 12], [1, 8, 13], [1, 8, 14], [1, 8, 15], [1, 9, 11],
 [1, 9, 12], [1, 9, 13], [1, 9, 14], [1, 9, 15], [1, 10, 11], [1, 10, 12], [1, 10, 13], [1, 10, 14],
 [1, 10, 15], [2, 6, 11], [2, 6, 12], [2, 6, 13], [2, 6, 14], [2, 6, 15], [2, 7, 11], [2, 7, 12],
 [2, 7, 13], [2, 7, 14], [2, 7, 15], [2, 8, 11], [2, 8, 12], [2, 8, 13], [2, 8, 14], [2, 8, 15], 
 [2, 9, 11], [2, 9, 12], [2, 9, 13], [2, 9, 14], [2, 9, 15], [2, 10, 11], [2, 10, 12], [2, 10, 13],
 [2, 10, 14], [2, 10, 15], [3, 6, 11], [3, 6, 12], [3, 6, 13], [3, 6, 14], [3, 6, 15], [3, 7, 11],
 [3, 7, 12], [3, 7, 13], [3, 7, 14], [3, 7, 15], [3, 8, 11], [3, 8, 12], [3, 8, 13], [3, 8, 14],
 [3, 8, 15], [3, 9, 11], [3, 9, 12], [3, 9, 13], [3, 9, 14], [3, 9, 15], [3, 10, 11], [3, 10, 12],
 [3, 10, 13], [3, 10, 14], [3, 10, 15], [4, 6, 11], [4, 6, 12], [4, 6, 13], [4, 6, 14], [4, 6, 15], 
 [4, 7, 11], [4, 7, 12], [4, 7, 13], [4, 7, 14], [4, 7, 15], [4, 8, 11], [4, 8, 12], [4, 8, 13],
 [4, 8, 14], [4, 8, 15], [4, 9, 11], [4, 9, 12], [4, 9, 13], [4, 9, 14], [4, 9, 15], [4, 10, 11],
 [4, 10, 12], [4, 10, 13], [4, 10, 14], [4, 10, 15], [5, 6, 11], [5, 6, 12], [5, 6, 13], [5, 6, 14], 
 [5, 6, 15], [5, 7, 11], [5, 7, 12], [5, 7, 13], [5, 7, 14], [5, 7, 15], [5, 8, 11], [5, 8, 12], 
 [5, 8, 13], [5, 8, 14], [5, 8, 15], [5, 9, 11], [5, 9, 12], [5, 9, 13], [5, 9, 14], [5, 9, 15],
 [5, 10, 11], [5, 10, 12], [5, 10, 13], [5, 10, 14], [5, 10, 15]]
	

我的使用场景:

list1 = ["420sq", "420hq", "422sq", "422hq"]
list2 = ["1080i50", "1080i5994", "720p50", "720p5994", "1080p50", "1080p5994"]
list3 = ["8bit", "10bit"]


# 例:从列表list1, list2, list3 中每次各抽取一个元素,再将抽取的元素来组成新的列表

index_set = []
temp_set = []
result_set = []
for i in list1:
    for j in list2:
        for k in list3:
            index_set.append(i)
            index_set.append(j)
            index_set.append(k)
for m in range(0, len(index_set), 3):
    temp_set.append(index_set[m])
    temp_set.append(index_set[m + 1])
    temp_set.append(index_set[m + 2])
    result_set.append(temp_set)
    temp_set = []
print(len(result_set))
print(result_set)

	

结果:

[['420sq', '1080i50', '8bit'], ['420sq', '1080i50', '10bit'], ['420sq', '1080i5994', '8bit'], ['420sq', '1080i5994', '10bit'], ['420sq', '720p50', '8bit'], ['420sq', '720p50', '10bit'], ['420sq', '720p5994', '8bit'], ['420sq', '720p5994', '10bit'], ['420sq', '1080p50', '8bit'], ['420sq', '1080p50', '10bit'], ['420sq', '1080p5994', '8bit'], ['420sq', '1080p5994', '10bit'], ['420hq', '1080i50', '8bit'], ['420hq', '1080i50', '10bit'], ['420hq', '1080i5994', '8bit'], ['420hq', '1080i5994', '10bit'], ['420hq', '720p50', '8bit'], ['420hq', 
'720p50', '10bit'], ['420hq', '720p5994', '8bit'], ['420hq', '720p5994', '10bit'], ['420hq', '1080p50', '8bit'], ['420hq', '1080p50', '10bit'], ['420hq', '1080p5994', '8bit'], ['420hq', '1080p5994', '10bit'], ['422sq', '1080i50', '8bit'], ['422sq', '1080i50', '10bit'], ['422sq', '1080i5994', '8bit'], ['422sq', '1080i5994', '10bit'], ['422sq', '720p50', '8bit'], ['422sq', '720p50', '10bit'], ['422sq', '720p5994', '8bit'], ['422sq', '720p5994', '10bit'], ['422sq', '1080p50', '8bit'], ['422sq', '1080p50', '10bit'], ['422sq', '1080p5994', '8bit'], ['422sq', '1080p5994', '10bit'], ['422hq', '1080i50', '8bit'], ['422hq', '1080i50', '10bit'], ['422hq', '1080i5994', '8bit'], ['422hq', '1080i5994', '10bit'], ['422hq', '720p50', '8bit'], ['422hq', '720p50', '10bit'], ['422hq', '720p5994', '8bit'], ['422hq', '720p5994', '10bit'], ['422hq', '1080p50', '8bit'], ['422hq', '1080p50', '10bit'], ['422hq', '1080p5994', '8bit'], ['422hq', '1080p5994', '10bit']]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值