Can this Python script be improved?

Can this Python code be improved?

   def build_list(types):
        for x in types:
            for a in ['short', 'long', 'average']:
                for b in ['square', 'sloped', 'average']:
                    for c in ['small', 'large', 'average']:
                        for d in ['thin', 'thick', 'average']:
                            for e in ['high', 'low', 'average']:
                                for f in [True, False]:
                                    for g in [True, False]:
                                        for h in ['flat', 'thick', 'average']:
                                            for i in ['long', 'short', 'average']:
                                                for j in [True, False]:
                                                    for k in ['thin', 'thick', 'average']:
                                                        for l in ['thin', 'thick', 'average']:
                                                            yield [x, a, b, c, d, e, f, g, h, i, j, k, l]
    facets_list = list(build_list(xrange(1,121)))
    print len(facets_list)
+5
source share
1 answer

Yes. you can useitertools.product()

import itertools
facets_list = list(itertools.product(types,
                                    ['short', 'long', 'average'],
                                    ['square', 'sloped', 'average'],
                                    ['small', 'large', 'average'],
                                     ...))
+12
source

All Articles