Функция не хранит весь вывод - PullRequest
0 голосов
/ 04 июля 2019

У меня есть следующий список,

p=[list(['a', 'b', 'c']), list(['d', 'e'])]

Я хотел бы создать подмножество каждого элемента (размером 2) и перечислить их, это даст следующий вывод:

[[('a', 'b'), ('a', 'c'), ('b', 'c')],[('d', 'e')]]

Чтобы добиться этого, я написал следующую функцию:

def x(m,n):
    for i in x:
        z=list(itertools.combinations(i, n))
    return(z)

пока я применяю, т.е. z(m,2) Я получаю только последний элемент:

[('d', 'e')]

Интересно, что яЯ делаю не так?

1 Ответ

1 голос
/ 04 июля 2019

это потому, что вы устанавливаете z каждый раз вместо того, чтобы добавлять его:

def x(m,n):
    z = []
    for i in m:
        z.append(list(itertools.combinations(i, n)))
    return(z)

yileds:

[[('a', 'b'), ('a', 'c'), ('b', 'c')], [('d', 'e')]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...