Использование списка со значением itertools.combinations
:
>>> import itertools
>>> inpt = [1,2,3,4,6,7,8,9]
>>> total = 10
>>> [p for p in itertools.combinations(inpt, 2) if sum(p) == total]
[(1, 9), (2, 8), (3, 7), (4, 6)]
Обратите внимание, что вы не должны использовать input
в качестве имени переменной, так как оно скрывает встроенную функцию input()
.
Чтобы сделать это без itertools
, мы можем использовать следующее понимание списка:
>>> [(inpt[i],inpt[j]) for i in range(len(inpt)) for j in range(i+1, len(inpt)) if sum((inpt[i],inpt[j])) == total]
>>> [(1, 9), (2, 8), (3, 7), (4, 6)]