zoukankan      html  css  js  c++  java
  • 待填坑

    今天看见一个烧脑的代码,一时没看懂结果,刨个坑,看懂填

    def product(*args, repeat=1):
        pools = [tuple(pool) for pool in args] * repeat
        result = [[]]
        for pool in pools:
            result = [x+[y] for x in result for y in pool]
        for prod in result:
            yield tuple(prod)
    
    rtn = product('xyz', '12', repeat=3)
    print(list(rtn))
    
    
    #result:

    [('x', '1', 'x', '1', 'x', '1'), ('x', '1', 'x', '1', 'x', '2'), ('x', '1', 'x', '1', 'y', '1'), ('x', '1', 'x', '1', 'y', '2'), ('x', '1', 'x', '1', 'z', '1'), ('x', '1', 'x', '1', 'z', '2'), ('x', '1', 'x', '2', 'x', '1'), ('x', '1', 'x', '2', 'x', '2'), ('x', '1', 'x', '2', 'y', '1'), ('x', '1', 'x', '2', 'y', '2'), ('x', '1', 'x', '2', 'z', '1'), ('x', '1', 'x', '2', 'z', '2'), ('x', '1', 'y', '1', 'x', '1'), ('x', '1', 'y', '1', 'x', '2'), ('x', '1', 'y', '1', 'y', '1'), ('x', '1', 'y', '1', 'y', '2'), ('x', '1', 'y', '1', 'z', '1'), ('x', '1', 'y', '1', 'z', '2'), ('x', '1', 'y', '2', 'x', '1'), ('x', '1', 'y', '2', 'x', '2'), ('x', '1', 'y', '2', 'y', '1'), ('x', '1', 'y', '2', 'y', '2'), ('x', '1', 'y', '2', 'z', '1'), ('x', '1', 'y', '2', 'z', '2'), ('x', '1', 'z', '1', 'x', '1'), ('x', '1', 'z', '1', 'x', '2'), ('x', '1', 'z', '1', 'y', '1'), ('x', '1', 'z', '1', 'y', '2'), ('x', '1', 'z', '1', 'z', '1'), ('x', '1', 'z', '1', 'z', '2'), ('x', '1', 'z', '2', 'x', '1'), ('x', '1', 'z', '2', 'x', '2'), ('x', '1', 'z', '2', 'y', '1'), ('x', '1', 'z', '2', 'y', '2'), ('x', '1', 'z', '2', 'z', '1'), ('x', '1', 'z', '2', 'z', '2'), ('x', '2', 'x', '1', 'x', '1'), ('x', '2', 'x', '1', 'x', '2'), ('x', '2', 'x', '1', 'y', '1'), ('x', '2', 'x', '1', 'y', '2'), ('x', '2', 'x', '1', 'z', '1'), ('x', '2', 'x', '1', 'z', '2'), ('x', '2', 'x', '2', 'x', '1'), ('x', '2', 'x', '2', 'x', '2'), ('x', '2', 'x', '2', 'y', '1'), ('x', '2', 'x', '2', 'y', '2'), ('x', '2', 'x', '2', 'z', '1'), ('x', '2', 'x', '2', 'z', '2'), ('x', '2', 'y', '1', 'x', '1'), ('x', '2', 'y', '1', 'x', '2'), ('x', '2', 'y', '1', 'y', '1'), ('x', '2', 'y', '1', 'y', '2'), ('x', '2', 'y', '1', 'z', '1'), ('x', '2', 'y', '1', 'z', '2'), ('x', '2', 'y', '2', 'x', '1'), ('x', '2', 'y', '2', 'x', '2'), ('x', '2', 'y', '2', 'y', '1'), ('x', '2', 'y', '2', 'y', '2'), ('x', '2', 'y', '2', 'z', '1'), ('x', '2', 'y', '2', 'z', '2'), ('x', '2', 'z', '1', 'x', '1'), ('x', '2', 'z', '1', 'x', '2'), ('x', '2', 'z', '1', 'y', '1'), ('x', '2', 'z', '1', 'y', '2'), ('x', '2', 'z', '1', 'z', '1'), ('x', '2', 'z', '1', 'z', '2'), ('x', '2', 'z', '2', 'x', '1'), ('x', '2', 'z', '2', 'x', '2'), ('x', '2', 'z', '2', 'y', '1'), ('x', '2', 'z', '2', 'y', '2'), ('x', '2', 'z', '2', 'z', '1'), ('x', '2', 'z', '2', 'z', '2'), ('y', '1', 'x', '1', 'x', '1'), ('y', '1', 'x', '1', 'x', '2'), ('y', '1', 'x', '1', 'y', '1'), ('y', '1', 'x', '1', 'y', '2'), ('y', '1', 'x', '1', 'z', '1'), ('y', '1', 'x', '1', 'z', '2'), ('y', '1', 'x', '2', 'x', '1'), ('y', '1', 'x', '2', 'x', '2'), ('y', '1', 'x', '2', 'y', '1'), ('y', '1', 'x', '2', 'y', '2'), ('y', '1', 'x', '2', 'z', '1'), ('y', '1', 'x', '2', 'z', '2'), ('y', '1', 'y', '1', 'x', '1'), ('y', '1', 'y', '1', 'x', '2'), ('y', '1', 'y', '1', 'y', '1'), ('y', '1', 'y', '1', 'y', '2'), ('y', '1', 'y', '1', 'z', '1'), ('y', '1', 'y', '1', 'z', '2'), ('y', '1', 'y', '2', 'x', '1'), ('y', '1', 'y', '2', 'x', '2'), ('y', '1', 'y', '2', 'y', '1'), ('y', '1', 'y', '2', 'y', '2'), ('y', '1', 'y', '2', 'z', '1'), ('y', '1', 'y', '2', 'z', '2'), ('y', '1', 'z', '1', 'x', '1'), ('y', '1', 'z', '1', 'x', '2'), ('y', '1', 'z', '1', 'y', '1'), ('y', '1', 'z', '1', 'y', '2'), ('y', '1', 'z', '1', 'z', '1'), ('y', '1', 'z', '1', 'z', '2'), ('y', '1', 'z', '2', 'x', '1'), ('y', '1', 'z', '2', 'x', '2'), ('y', '1', 'z', '2', 'y', '1'), ('y', '1', 'z', '2', 'y', '2'), ('y', '1', 'z', '2', 'z', '1'), ('y', '1', 'z', '2', 'z', '2'), ('y', '2', 'x', '1', 'x', '1'), ('y', '2', 'x', '1', 'x', '2'), ('y', '2', 'x', '1', 'y', '1'), ('y', '2', 'x', '1', 'y', '2'), ('y', '2', 'x', '1', 'z', '1'), ('y', '2', 'x', '1', 'z', '2'), ('y', '2', 'x', '2', 'x', '1'), ('y', '2', 'x', '2', 'x', '2'), ('y', '2', 'x', '2', 'y', '1'), ('y', '2', 'x', '2', 'y', '2'), ('y', '2', 'x', '2', 'z', '1'), ('y', '2', 'x', '2', 'z', '2'), ('y', '2', 'y', '1', 'x', '1'), ('y', '2', 'y', '1', 'x', '2'), ('y', '2', 'y', '1', 'y', '1'), ('y', '2', 'y', '1', 'y', '2'), ('y', '2', 'y', '1', 'z', '1'), ('y', '2', 'y', '1', 'z', '2'), ('y', '2', 'y', '2', 'x', '1'), ('y', '2', 'y', '2', 'x', '2'), ('y', '2', 'y', '2', 'y', '1'), ('y', '2', 'y', '2', 'y', '2'), ('y', '2', 'y', '2', 'z', '1'), ('y', '2', 'y', '2', 'z', '2'), ('y', '2', 'z', '1', 'x', '1'), ('y', '2', 'z', '1', 'x', '2'), ('y', '2', 'z', '1', 'y', '1'), ('y', '2', 'z', '1', 'y', '2'), ('y', '2', 'z', '1', 'z', '1'), ('y', '2', 'z', '1', 'z', '2'), ('y', '2', 'z', '2', 'x', '1'), ('y', '2', 'z', '2', 'x', '2'), ('y', '2', 'z', '2', 'y', '1'), ('y', '2', 'z', '2', 'y', '2'), ('y', '2', 'z', '2', 'z', '1'), ('y', '2', 'z', '2', 'z', '2'), ('z', '1', 'x', '1', 'x', '1'), ('z', '1', 'x', '1', 'x', '2'), ('z', '1', 'x', '1', 'y', '1'), ('z', '1', 'x', '1', 'y', '2'), ('z', '1', 'x', '1', 'z', '1'), ('z', '1', 'x', '1', 'z', '2'), ('z', '1', 'x', '2', 'x', '1'), ('z', '1', 'x', '2', 'x', '2'), ('z', '1', 'x', '2', 'y', '1'), ('z', '1', 'x', '2', 'y', '2'), ('z', '1', 'x', '2', 'z', '1'), ('z', '1', 'x', '2', 'z', '2'), ('z', '1', 'y', '1', 'x', '1'), ('z', '1', 'y', '1', 'x', '2'), ('z', '1', 'y', '1', 'y', '1'), ('z', '1', 'y', '1', 'y', '2'), ('z', '1', 'y', '1', 'z', '1'), ('z', '1', 'y', '1', 'z', '2'), ('z', '1', 'y', '2', 'x', '1'), ('z', '1', 'y', '2', 'x', '2'), ('z', '1', 'y', '2', 'y', '1'), ('z', '1', 'y', '2', 'y', '2'), ('z', '1', 'y', '2', 'z', '1'), ('z', '1', 'y', '2', 'z', '2'), ('z', '1', 'z', '1', 'x', '1'), ('z', '1', 'z', '1', 'x', '2'), ('z', '1', 'z', '1', 'y', '1'), ('z', '1', 'z', '1', 'y', '2'), ('z', '1', 'z', '1', 'z', '1'), ('z', '1', 'z', '1', 'z', '2'), ('z', '1', 'z', '2', 'x', '1'), ('z', '1', 'z', '2', 'x', '2'), ('z', '1', 'z', '2', 'y', '1'), ('z', '1', 'z', '2', 'y', '2'), ('z', '1', 'z', '2', 'z', '1'), ('z', '1', 'z', '2', 'z', '2'), ('z', '2', 'x', '1', 'x', '1'), ('z', '2', 'x', '1', 'x', '2'), ('z', '2', 'x', '1', 'y', '1'), ('z', '2', 'x', '1', 'y', '2'), ('z', '2', 'x', '1', 'z', '1'), ('z', '2', 'x', '1', 'z', '2'), ('z', '2', 'x', '2', 'x', '1'), ('z', '2', 'x', '2', 'x', '2'), ('z', '2', 'x', '2', 'y', '1'), ('z', '2', 'x', '2', 'y', '2'), ('z', '2', 'x', '2', 'z', '1'), ('z', '2', 'x', '2', 'z', '2'), ('z', '2', 'y', '1', 'x', '1'), ('z', '2', 'y', '1', 'x', '2'), ('z', '2', 'y', '1', 'y', '1'), ('z', '2', 'y', '1', 'y', '2'), ('z', '2', 'y', '1', 'z', '1'), ('z', '2', 'y', '1', 'z', '2'), ('z', '2', 'y', '2', 'x', '1'), ('z', '2', 'y', '2', 'x', '2'), ('z', '2', 'y', '2', 'y', '1'), ('z', '2', 'y', '2', 'y', '2'), ('z', '2', 'y', '2', 'z', '1'), ('z', '2', 'y', '2', 'z', '2'), ('z', '2', 'z', '1', 'x', '1'), ('z', '2', 'z', '1', 'x', '2'), ('z', '2', 'z', '1', 'y', '1'), ('z', '2', 'z', '1', 'y', '2'), ('z', '2', 'z', '1', 'z', '1'), ('z', '2', 'z', '1', 'z', '2'), ('z', '2', 'z', '2', 'x', '1'), ('z', '2', 'z', '2', 'x', '2'), ('z', '2', 'z', '2', 'y', '1'), ('z', '2', 'z', '2', 'y', '2'), ('z', '2', 'z', '2', 'z', '1'), ('z', '2', 'z', '2', 'z', '2')]

    ##############################################################33

    pools=[('x', 'y', 'z'), ('1', '2'), ('x', 'y', 'z'), ('1', '2'), ('x', 'y', 'z'), ('1', '2')]
    result=

    [['x', '1', 'x', '1', 'x', '1'], ['x', '1', 'x', '1', 'x', '2'], ['x', '1', 'x', '1', 'y', '1'], ['x', '1', 'x', '1', 'y', '2'], ['x', '1', 'x', '1', 'z', '1'], ['x', '1', 'x', '1', 'z', '2'], ['x', '1', 'x', '2', 'x', '1'], ['x', '1', 'x', '2', 'x', '2'], ['x', '1', 'x', '2', 'y', '1'], ['x', '1', 'x', '2', 'y', '2'], ['x', '1', 'x', '2', 'z', '1'], ['x', '1', 'x', '2', 'z', '2'], ['x', '1', 'y', '1', 'x', '1'], ['x', '1', 'y', '1', 'x', '2'], ['x', '1', 'y', '1', 'y', '1'], ['x', '1', 'y', '1', 'y', '2'], ['x', '1', 'y', '1', 'z', '1'], ['x', '1', 'y', '1', 'z', '2'], ['x', '1', 'y', '2', 'x', '1'], ['x', '1', 'y', '2', 'x', '2'], ['x', '1', 'y', '2', 'y', '1'], ['x', '1', 'y', '2', 'y', '2'], ['x', '1', 'y', '2', 'z', '1'], ['x', '1', 'y', '2', 'z', '2'], ['x', '1', 'z', '1', 'x', '1'], ['x', '1', 'z', '1', 'x', '2'], ['x', '1', 'z', '1', 'y', '1'], ['x', '1', 'z', '1', 'y', '2'], ['x', '1', 'z', '1', 'z', '1'], ['x', '1', 'z', '1', 'z', '2'], ['x', '1', 'z', '2', 'x', '1'], ['x', '1', 'z', '2', 'x', '2'], ['x', '1', 'z', '2', 'y', '1'], ['x', '1', 'z', '2', 'y', '2'], ['x', '1', 'z', '2', 'z', '1'], ['x', '1', 'z', '2', 'z', '2'], ['x', '2', 'x', '1', 'x', '1'], ['x', '2', 'x', '1', 'x', '2'], ['x', '2', 'x', '1', 'y', '1'], ['x', '2', 'x', '1', 'y', '2'], ['x', '2', 'x', '1', 'z', '1'], ['x', '2', 'x', '1', 'z', '2'], ['x', '2', 'x', '2', 'x', '1'], ['x', '2', 'x', '2', 'x', '2'], ['x', '2', 'x', '2', 'y', '1'], ['x', '2', 'x', '2', 'y', '2'], ['x', '2', 'x', '2', 'z', '1'], ['x', '2', 'x', '2', 'z', '2'], ['x', '2', 'y', '1', 'x', '1'], ['x', '2', 'y', '1', 'x', '2'], ['x', '2', 'y', '1', 'y', '1'], ['x', '2', 'y', '1', 'y', '2'], ['x', '2', 'y', '1', 'z', '1'], ['x', '2', 'y', '1', 'z', '2'], ['x', '2', 'y', '2', 'x', '1'], ['x', '2', 'y', '2', 'x', '2'], ['x', '2', 'y', '2', 'y', '1'], ['x', '2', 'y', '2', 'y', '2'], ['x', '2', 'y', '2', 'z', '1'], ['x', '2', 'y', '2', 'z', '2'], ['x', '2', 'z', '1', 'x', '1'], ['x', '2', 'z', '1', 'x', '2'], ['x', '2', 'z', '1', 'y', '1'], ['x', '2', 'z', '1', 'y', '2'], ['x', '2', 'z', '1', 'z', '1'], ['x', '2', 'z', '1', 'z', '2'], ['x', '2', 'z', '2', 'x', '1'], ['x', '2', 'z', '2', 'x', '2'], ['x', '2', 'z', '2', 'y', '1'], ['x', '2', 'z', '2', 'y', '2'], ['x', '2', 'z', '2', 'z', '1'], ['x', '2', 'z', '2', 'z', '2'], ['y', '1', 'x', '1', 'x', '1'], ['y', '1', 'x', '1', 'x', '2'], ['y', '1', 'x', '1', 'y', '1'], ['y', '1', 'x', '1', 'y', '2'], ['y', '1', 'x', '1', 'z', '1'], ['y', '1', 'x', '1', 'z', '2'], ['y', '1', 'x', '2', 'x', '1'], ['y', '1', 'x', '2', 'x', '2'], ['y', '1', 'x', '2', 'y', '1'], ['y', '1', 'x', '2', 'y', '2'], ['y', '1', 'x', '2', 'z', '1'], ['y', '1', 'x', '2', 'z', '2'], ['y', '1', 'y', '1', 'x', '1'], ['y', '1', 'y', '1', 'x', '2'], ['y', '1', 'y', '1', 'y', '1'], ['y', '1', 'y', '1', 'y', '2'], ['y', '1', 'y', '1', 'z', '1'], ['y', '1', 'y', '1', 'z', '2'], ['y', '1', 'y', '2', 'x', '1'], ['y', '1', 'y', '2', 'x', '2'], ['y', '1', 'y', '2', 'y', '1'], ['y', '1', 'y', '2', 'y', '2'], ['y', '1', 'y', '2', 'z', '1'], ['y', '1', 'y', '2', 'z', '2'], ['y', '1', 'z', '1', 'x', '1'], ['y', '1', 'z', '1', 'x', '2'], ['y', '1', 'z', '1', 'y', '1'], ['y', '1', 'z', '1', 'y', '2'], ['y', '1', 'z', '1', 'z', '1'], ['y', '1', 'z', '1', 'z', '2'], ['y', '1', 'z', '2', 'x', '1'], ['y', '1', 'z', '2', 'x', '2'], ['y', '1', 'z', '2', 'y', '1'], ['y', '1', 'z', '2', 'y', '2'], ['y', '1', 'z', '2', 'z', '1'], ['y', '1', 'z', '2', 'z', '2'], ['y', '2', 'x', '1', 'x', '1'], ['y', '2', 'x', '1', 'x', '2'], ['y', '2', 'x', '1', 'y', '1'], ['y', '2', 'x', '1', 'y', '2'], ['y', '2', 'x', '1', 'z', '1'], ['y', '2', 'x', '1', 'z', '2'], ['y', '2', 'x', '2', 'x', '1'], ['y', '2', 'x', '2', 'x', '2'], ['y', '2', 'x', '2', 'y', '1'], ['y', '2', 'x', '2', 'y', '2'], ['y', '2', 'x', '2', 'z', '1'], ['y', '2', 'x', '2', 'z', '2'], ['y', '2', 'y', '1', 'x', '1'], ['y', '2', 'y', '1', 'x', '2'], ['y', '2', 'y', '1', 'y', '1'], ['y', '2', 'y', '1', 'y', '2'], ['y', '2', 'y', '1', 'z', '1'], ['y', '2', 'y', '1', 'z', '2'], ['y', '2', 'y', '2', 'x', '1'], ['y', '2', 'y', '2', 'x', '2'], ['y', '2', 'y', '2', 'y', '1'], ['y', '2', 'y', '2', 'y', '2'], ['y', '2', 'y', '2', 'z', '1'], ['y', '2', 'y', '2', 'z', '2'], ['y', '2', 'z', '1', 'x', '1'], ['y', '2', 'z', '1', 'x', '2'], ['y', '2', 'z', '1', 'y', '1'], ['y', '2', 'z', '1', 'y', '2'], ['y', '2', 'z', '1', 'z', '1'], ['y', '2', 'z', '1', 'z', '2'], ['y', '2', 'z', '2', 'x', '1'], ['y', '2', 'z', '2', 'x', '2'], ['y', '2', 'z', '2', 'y', '1'], ['y', '2', 'z', '2', 'y', '2'], ['y', '2', 'z', '2', 'z', '1'], ['y', '2', 'z', '2', 'z', '2'], ['z', '1', 'x', '1', 'x', '1'], ['z', '1', 'x', '1', 'x', '2'], ['z', '1', 'x', '1', 'y', '1'], ['z', '1', 'x', '1', 'y', '2'], ['z', '1', 'x', '1', 'z', '1'], ['z', '1', 'x', '1', 'z', '2'], ['z', '1', 'x', '2', 'x', '1'], ['z', '1', 'x', '2', 'x', '2'], ['z', '1', 'x', '2', 'y', '1'], ['z', '1', 'x', '2', 'y', '2'], ['z', '1', 'x', '2', 'z', '1'], ['z', '1', 'x', '2', 'z', '2'], ['z', '1', 'y', '1', 'x', '1'], ['z', '1', 'y', '1', 'x', '2'], ['z', '1', 'y', '1', 'y', '1'], ['z', '1', 'y', '1', 'y', '2'], ['z', '1', 'y', '1', 'z', '1'], ['z', '1', 'y', '1', 'z', '2'], ['z', '1', 'y', '2', 'x', '1'], ['z', '1', 'y', '2', 'x', '2'], ['z', '1', 'y', '2', 'y', '1'], ['z', '1', 'y', '2', 'y', '2'], ['z', '1', 'y', '2', 'z', '1'], ['z', '1', 'y', '2', 'z', '2'], ['z', '1', 'z', '1', 'x', '1'], ['z', '1', 'z', '1', 'x', '2'], ['z', '1', 'z', '1', 'y', '1'], ['z', '1', 'z', '1', 'y', '2'], ['z', '1', 'z', '1', 'z', '1'], ['z', '1', 'z', '1', 'z', '2'], ['z', '1', 'z', '2', 'x', '1'], ['z', '1', 'z', '2', 'x', '2'], ['z', '1', 'z', '2', 'y', '1'], ['z', '1', 'z', '2', 'y', '2'], ['z', '1', 'z', '2', 'z', '1'], ['z', '1', 'z', '2', 'z', '2'], ['z', '2', 'x', '1', 'x', '1'], ['z', '2', 'x', '1', 'x', '2'], ['z', '2', 'x', '1', 'y', '1'], ['z', '2', 'x', '1', 'y', '2'], ['z', '2', 'x', '1', 'z', '1'], ['z', '2', 'x', '1', 'z', '2'], ['z', '2', 'x', '2', 'x', '1'], ['z', '2', 'x', '2', 'x', '2'], ['z', '2', 'x', '2', 'y', '1'], ['z', '2', 'x', '2', 'y', '2'], ['z', '2', 'x', '2', 'z', '1'], ['z', '2', 'x', '2', 'z', '2'], ['z', '2', 'y', '1', 'x', '1'], ['z', '2', 'y', '1', 'x', '2'], ['z', '2', 'y', '1', 'y', '1'], ['z', '2', 'y', '1', 'y', '2'], ['z', '2', 'y', '1', 'z', '1'], ['z', '2', 'y', '1', 'z', '2'], ['z', '2', 'y', '2', 'x', '1'], ['z', '2', 'y', '2', 'x', '2'], ['z', '2', 'y', '2', 'y', '1'], ['z', '2', 'y', '2', 'y', '2'], ['z', '2', 'y', '2', 'z', '1'], ['z', '2', 'y', '2', 'z', '2'], ['z', '2', 'z', '1', 'x', '1'], ['z', '2', 'z', '1', 'x', '2'], ['z', '2', 'z', '1', 'y', '1'], ['z', '2', 'z', '1', 'y', '2'], ['z', '2', 'z', '1', 'z', '1'], ['z', '2', 'z', '1', 'z', '2'], ['z', '2', 'z', '2', 'x', '1'], ['z', '2', 'z', '2', 'x', '2'], ['z', '2', 'z', '2', 'y', '1'], ['z', '2', 'z', '2', 'y', '2'], ['z', '2', 'z', '2', 'z', '1'], ['z', '2', 'z', '2', 'z', '2']]

    通过打印两个关键列表,看懂了,pools是把两个字符串分割成两个元组重复了三遍,result为列表推导式,先执行后面的for循环,等于是把result中的6个元组里的元素分别组合了一遍成为一个个列表,整体是个二维列表,最后的for循环yield把二维列表中的一个个列表变为元组

    
    
  • 相关阅读:
    微软铁杆兄弟诺基亚开发基于Linux的手机
    Linux目录递归改变文件名大小写
    boa-0.94.13 移植到 ARM
    LINUX如何设置只允许SSH登陆?
    9.4. 使用 I/O 内存
    I-O 端口和 I-O 内存
    Linux 的虚拟文件系统--各结构之间的联系
    Linux 系统调用
    【poj2528】Mayor's posters
    【poj3225】Help with Intervals
  • 原文地址:https://www.cnblogs.com/miaoweiye/p/12604590.html
Copyright © 2011-2022 走看看