Комбинации из словаря со значениями списка с использованием Python

Я считаю, что это также может быть решено с помощью? SingleWsdl вместо просто? Wsdl в конце. Существует несколько файлов WSDL, с которыми связаны ссылки, поэтому что-то слишком наивное для их просмотра может привести к ошибкам.

24
задан Sebastian Werner 6 October 2010 в 14:38
поделиться

1 ответ

Это то, что я использую:

from itertools import product

def dictproduct(dct):
    for t in product(*dct.itervalues()):
        yield dict(zip(dct.iterkeys(), t))

, который применяется к вашему примеру, дает:

>>> list(dictproduct({"debug":["on", "off"], "locale":["de_DE", "en_US", "fr_FR"]}))
[{'debug': 'on', 'locale': 'de_DE'},
 {'debug': 'on', 'locale': 'en_US'},
 {'debug': 'on', 'locale': 'fr_FR'},
 {'debug': 'off', 'locale': 'de_DE'},
 {'debug': 'off', 'locale': 'en_US'},
 {'debug': 'off', 'locale': 'fr_FR'}]

Я считаю, что это более читабельно, чем один вкладыш выше.

Кроме того, он возвращает итератор, такой как itertools.product, поэтому он оставляет за пользователем право создавать экземпляр списка или просто использовать значения по одному.

3
ответ дан 28 November 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: