给出n
和k
,我需要创建所有长度为k
的元组,其条目是从range(n)
(0到n-1),以使该元组的条目按字典顺序排列,并在其中加括号特定格式。具体来说,元组从内到外在每对周围都有括号。
例如,如果n=3
和k=4
,那么我希望输出中包含类似(((0,0),1),2)
的内容,但not不包含(((0,0),2),1)
的东西。
下面的代码适用于此特定实例。问题是我不知道如何概括k
,这是下面的代码中的[[for
循环数。我只能对特定的k
执行此操作,例如此处的k=4
。我真的需要能够对[k
]的any值执行此操作。n=3
k=4
my_list = []
for a in range(n):
x = a
for b in range(a,n):
y = (x,b)
for c in range(b,n):
z = (y,c)
for d in range(c,n):
w = (z,d)
my_list.append(w)
print my_list
输出:
[(((0, 0), 0), 0), (((0, 0), 0), 1), (((0, 0), 0), 2), (((0, 0), 1), 1), (((0, 0), 1), 2), (((0, 0), 2), 2), (((0, 1), 1), 1), (((0, 1), 1), 2), (((0, 1), 2), 2), (((0, 2), 2), 2), (((1, 1), 1), 1), (((1, 1), 1), 2), (((1, 1), 2), 2), (((1, 2), 2), 2), (((2, 2), 2), 2)]
给出n和k,我需要创建所有长度为k的元组,其条目的范围是从range(n)(0到n-1),以使该元组的条目按字典顺序排列,并带有特定格式的括号。 ..
n=4
k=4
my_list=[(((a,b),c),d) for a in range(n) for b in range(a,n) for c in range(b,n) for d in range(c,n) ]
print my_list