获取测验答案的所有可能组合

Bor*_*aev -2 python dictionary list

我有一本字典,以问题为键,以答案选项列表为值。

quiz = {
  'Question 1': ['yes', 'no'],
  'Question 2': ['dogs', 'cats'],
  'Question 3': ['apples', 'oranges']
}
Run Code Online (Sandbox Code Playgroud)

获得所有可能的答案组合的最佳方法是什么?

azr*_*zro 5

事实上2**3,你可以得到8 种可能性itertools.product

from itertools import product

quiz = {
    'Question 1': ['yes', 'no'],
    'Question 2': ['dogs', 'cats'],
    'Question 3': ['apples', 'oranges']
}

for responses in product(*quiz.values()):
    print(responses)

# each row is a tuple
('yes', 'dogs', 'apples')
('yes', 'dogs', 'oranges')
('yes', 'cats', 'apples')
('yes', 'cats', 'oranges')
('no', 'dogs', 'apples')
('no', 'dogs', 'oranges')
('no', 'cats', 'apples')
('no', 'cats', 'oranges')
Run Code Online (Sandbox Code Playgroud)