这是我的第一个 python 程序。我使用以下代码为给定范围生成组合。
for k in range(0, items+1):
for r in range(0, items+1):
if (r-k) > 0:
res = [x for x in itertools.combinations(range(k, r), r-k)]
print res
假设 items=4,代码产生 10 个组合
#
# [(0,)]
# [(0, 1)]
# [(0, 1, 2)]
# [(0, 1, 2, 3)]
# [(1,)]
# [(1, 2)]
# [(1, 2, 3)]
# [(2,)]
# [(2, 3)]
# [(3,)]
#
我的问题是
(a) 如何检索每个组合中的每个元素,比如说,在 [(1, 2, 3)] 中,我如何检索偏移量 0(即 1)处的值?
(b) 如何将 itertools.combinations 的返回值存储到“res”中的列表数组中(例如 res[0] = [(0,)] , res[1] = [(0, 1)] ?
(c) 假设我想使用 map(),我怎样才能将值例如 [(0, 1)] 作为键,并为该键分配一个随机值?