如何在python中动态生成列表的组合
我想在python中动态生成组合,我有一个var sessionperweeks,介于2和6之间如何在python中动态生成列表的组合,python,arrays,dynamic,nested-loops,Python,Arrays,Dynamic,Nested Loops,我想在python中动态生成组合,我有一个var sessionperweeks,介于2和6之间 if sessionperweeks==2 for i in range(0,7): for j in range(i+1,7): combins.append([i,j]) if sessionperweeks==3 for i in range(0,7): for j in range(i+1,7):
if sessionperweeks==2
for i in range(0,7):
for j in range(i+1,7):
combins.append([i,j])
if sessionperweeks==3
for i in range(0,7):
for j in range(i+1,7):
for k in range(j+1,7):
combins.append([i,j,k])
依此类推,您可以使用itertools的组合从每周0-6次选择会话:
from itertools import combinations
sessionsperweek = int(input("Enter sessions per week:"))
combins = list(combinations(range(7), sessionsperweek))
print("Your possible combinations are:")
print(combins)
自OP更新后使用2运行的示例:
Enter sessions per week:2
Your possible combinations are:
[(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (5, 6)]
运行示例:
Enter sessions per week:6
Your possible combinations are:
[(0, 1, 2, 3, 4, 5), (0, 1, 2, 3, 4, 6), (0, 1, 2, 3, 5, 6), (0, 1, 2, 4, 5, 6), (0, 1, 3, 4, 5, 6), (0, 2, 3, 4, 5, 6), (1, 2, 3, 4, 5, 6)]
查看itertools.post示例输入和预期输出我想要的是一周中所有天的所有组合。在每周会话大小的0到6之间,例如,如果会话每周==2[[0,1]、[0,2]、[0,3]、[0,4]、[0,5]、[0,6]、[1,2]、[1,3]、[1,4]、[1,5]、[1,6]、[2,3]、[2,5]、[2,6]、[3,4]、[3,5]、[3,6]、[4,5]、[4,6]]