【问题标题】:(python) How can i sum all the results of a combination in a specific way?(python)如何以特定方式对组合的所有结果求和?
【发布时间】:2017-10-06 20:17:15
【问题描述】:

我正在尝试找到一种方法来组合 2 个列表,然后以特定方式对组合列表求和。前两个元素之和必须与下一个元素相加。

Ex : 第一个组合 ((1, 2), (4,)) 的总和应该 是 (3,7,6),因为 1+2=3, 3+4=7, 2+4=6。

然后并排打印: ((1, 2), (4,)) (3,7,6) 如果它(组合及其总和)不包含某个元素(不知何故已经插入)。

这是我的代码和示例:

a=[1,2,3]
b=[4,5,6]

import itertools

sets = [a,b];
ks = [2, 1,] 

combinations = itertools.product(*[itertools.combinations(set, k) for set, k in zip(sets, ks)])

for combination in combinations:
    print (combination)

【问题讨论】:

    标签: python list sum combinations itertools


    【解决方案1】:

    直截了当:

    for i in itertools.product(*[itertools.combinations(set, k) for set, k in zip(sets, ks)]):
        i_sum = i[0][0] + i[0][1]
        print(i, (i_sum, i_sum + i[1][0], i[0][1] + i[1][0]))
    

    输出:

    ((1, 2), (4,)) (3, 7, 6)
    ((1, 2), (5,)) (3, 8, 7)
    ((1, 2), (6,)) (3, 9, 8)
    ((1, 3), (4,)) (4, 8, 7)
    ((1, 3), (5,)) (4, 9, 8)
    ((1, 3), (6,)) (4, 10, 9)
    ((2, 3), (4,)) (5, 9, 7)
    ((2, 3), (5,)) (5, 10, 8)
    ((2, 3), (6,)) (5, 11, 9)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-10
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      相关资源
      最近更新 更多