【问题标题】:Return various sum totals of integer list返回整数列表的各种总和
【发布时间】:2020-08-10 21:05:08
【问题描述】:

有没有办法返回整数列表的各种总和? Pythonic 或其他。

例如来自[1, 2, 3, 4] 的各种总和将产生1+2=3, 1+3=4, 1+4=5, 2+3=5, 2+4=6, 3+4=7。默认情况下,要求和的整数可能会被固定为两个整数或更多我猜。

似乎无法解决如何解决这个问题,并且似乎无法在互联网上找到示例或解释,因为它们都会导致“列表中的偶数/奇数相加”和其他不同的问题。

【问题讨论】:

  • 如果有人想将 3 个整数加在一起,他们可以。我遇到了一个问题,只添加了两个整数,但在某些情况下,将 3 个整数加在一起可能会出现问题

标签: python list sum


【解决方案1】:

您可以使用itertools.combinationssum

from itertools import combinations

li = [1, 2, 3, 4]

# assuming we don't need to sum the entire list or single numbers,
# and that x + y is the same as y + x
for sum_size in range(2, len(li)): 
    for comb in combinations(li, sum_size):
        print(comb, sum(comb))

输出

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

【讨论】:

  • 为了清楚/详细说明,可能将范围更改为 range(1, len(li) + 1) 即使这些是微不足道的组合。
  • @AndrewHolmgren 这正是# 存在的原因
【解决方案2】:

这就是你要找的吗? A=[1,2,3,4] for i in A: for j in A: if i!=j: print(i+j)

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多