【发布时间】:2018-03-01 23:53:02
【问题描述】:
例如 a = [7,8,8,9,4] --> 会给三分。由于 7 + 8(索引处为 8 --> 0),7 + 8(索引处为 8 --> 1),9 + 4 都等于 15
如何在 python 中编写代码来执行此操作?
【问题讨论】:
-
9 + 4 == 15是从什么时候开始的?
例如 a = [7,8,8,9,4] --> 会给三分。由于 7 + 8(索引处为 8 --> 0),7 + 8(索引处为 8 --> 1),9 + 4 都等于 15
如何在 python 中编写代码来执行此操作?
【问题讨论】:
9 + 4 == 15是从什么时候开始的?
您可以在原始列表中生成所有 2 值组合
>>> a = [7,8,8,9,4]
>>> import itertools
>>> list(itertools.combinations(a, 2))
[(7, 8), (7, 8), (7, 9), (7, 4), (8, 8), (8, 9), (8, 4), (8, 9), (8, 4), (9, 4)]
然后使用列表推导来检查它们的总和是否等于您的值
>>> total = 15
>>> [i for i in itertools.combinations(a, 2) if sum(i) == total]
[(7, 8), (7, 8)]
【讨论】: