Список комбинаций из заданного набора чисел с их итогами - PullRequest
0 голосов
/ 21 октября 2018

Я использую этот код для генерации комбинаций из трех чисел из заданного набора списков.

import itertools

thelist = [0, 0, 0, 1, 1, 2, 2, 1]
for L in range(3,4):
    for subset in itertools.combinations(thelist, L):
        print(subset)

Что отлично работает, и результаты выглядят так:

(0, 0, 0)
(0, 0, 1)
(0, 0, 1)
(0, 0, 2)
(0, 0, 2)
(0, 0, 1)
(0, 0, 1)
(0, 0, 1)
(0, 0, 2)
(0, 0, 2)
(0, 0, 1)
(0, 1, 1)
(0, 1, 2)
(0, 1, 2)
(0, 1, 1)
(0, 1, 2)
(0, 1, 2)
(0, 1, 1)

I 'Я хотел бы перечислить сумму произведенных комбинаций вместе.Как я могу это сделать?Чтобы вывод выглядел примерно так:

(0, 0, 0) =>0
(0, 0, 1) =>1
(0, 0, 1) =>1
(0, 0, 2) =>2
(0, 0, 2) =>2
(0, 0, 1) =>1
(0, 0, 1) =>1
(0, 0, 1) =>1
(0, 0, 2) =>2
(0, 0, 2) =>2
(0, 0, 1) =>1
(0, 1, 1) =>2

1 Ответ

0 голосов
/ 21 октября 2018

Если вы просто печатаете на питоне >= 3.6, вы можете использовать f строк и просто сделать:

import itertools

thelist = [0, 0, 0, 1, 1, 2, 2, 1]
for L in range(3,4):
    for subset in itertools.combinations(thelist, L):
        print(f"{subset} => {sum(subset)}")

Для Python <3.6 использовать: print("{} => {}".format(subset, sum(subset))

...