Может ли функция продукта itertools находить перестановки в списке словарей с более чем одним значением на ключ? - PullRequest
1 голос
/ 21 октября 2019

У меня есть список словарей, самый простой способ (который я могу придумать) описать их - это рассмотреть их как возможные вопросы и ответы в вопроснике. Каждый ключ словаря представляет вопрос, список значений возможных ответов на вопрос.

Я хочу найти все возможные варианты ответов на вопросник. Функция продукта Itertools прекрасно работает, если можно получить только один ответ на каждый вопрос. Есть ли способ также получить перестановки в случае, когда на один из вопросов может быть более одного ответа? Например, рассмотрите возможность того, что Вопрос3 имеет элемент управления с несколькими флажками.

#!/usr/bin/env python
# coding: utf-8

import pandas as pd
from itertools import product
#create a dict for each question in the questionnaire and the possible answer values for that question, assign those to some variable, d;
d = {
    'question1':['answer1-1','answer1-2'],
    'question2':['answer2-1','answer2-2','answer2-3','answer2-4'],
    'question3':['question3-1','question3-2','question3-3']
}
#the itertools product function gets you the various permutations, this works great if each question can only have one answer, e.g. a single-select/radio button
t=[dict(zip(d, v)) for v in product(*d.values())]
#this sticks the permutations in a dataframe with the dict keys as a header
pd.DataFrame(t).to_csv('out.csv', index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...