Python Forum

Full Version: PHP to Python
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
if using python 3.7+ you can use order-preserving feature of dicts. Before 3.6 dicts were unordered. In 3.6. order was preserved as implementation feature (should not be relied upon)
import itertools as it

# assume using python 3.7+
my_dict = {'item1':['A', 'B'], 'item2':['C', 'D'], 'item3':['E','F']}
combinations = it.product(*my_dict.values())
for i, item in enumerate(combinations):
    print(f'array {i}:')
    for key, value in zip(my_dict.keys(), item):
        print(f'\t{key} ==> {value}')
alternative approach would be to transform your dict
import itertools as it

# assume using python 3.7+
my_dict = {'item1':['A', 'B'], 'item2':['C', 'D'], 'item3':['E','F']}
my_list = [[(key, value2) for value2 in value] for key, value in my_dict.items()]
combinations = it.product(*my_list)
for i, item in enumerate(combinations):
    print(f'array {i}:')
    for key, value in item:
        print(f'\t{key} ==> {value}')
in both cases output is
Output:
array 0: item1 ==> A item2 ==> C item3 ==> E array 1: item1 ==> A item2 ==> C item3 ==> F array 2: item1 ==> A item2 ==> D item3 ==> E array 3: item1 ==> A item2 ==> D item3 ==> F array 4: item1 ==> B item2 ==> C item3 ==> E array 5: item1 ==> B item2 ==> C item3 ==> F array 6: item1 ==> B item2 ==> D item3 ==> E array 7: item1 ==> B item2 ==> D item3 ==> F
This is just basic example, build upon it to get output in desired format
This is great! Thank you very much!
Pages: 1 2