这个Python脚本可以改进吗?

时间:2011-07-19 02:34:33

标签: python yield

可以改进这个Python代码吗?

   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)

1 个答案:

答案 0 :(得分:12)

是。您可以使用itertools.product()

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