2013-03-26 6 views
0
import itertools 
def x(a,b): 
    x = [[i] for i in itertools.product(a, repeat=b)] 
    return [x] 
print (x({0,1},3)) 

출력은 다음과 같이하는 내가 걸려 라하는 것은변경 출력은

[[[(0, 0, 0)], [(0, 0, 1)], [(0, 1, 0)], [(0, 1, 1)], [(1, 0, 0)], [(1, 0, 1)], [(1, 1, 0)], [(1, 1, 1)]]] 

이며, 모든()을 제거하고 시작하고 []

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]] 

제거를 마무리

답변

0

이유는 단순히

return list(itertools.product(a, repeat=b)) 

또는, 당신이 경우 또한

return map(list, itertools.product(a, repeat=b)) 

x라는 이름의 함수 내에서 x라는 변수에 조심 쓰기 수, 모든 일 목록에 요소를 원하는; 이것은 재귀에 문제를 일으킬 것입니다.

+0

출력이 [[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1] 0], [1, 0, 1], [1, 1, 0], [1, 1, 1] 주어진 코드는 내 것과 같은 문제가 있습니다. (0,0,0) [0,0,0] – user2210605

+0

... 두 번째 코드를 참조하십시오. – nneonneo

+0

코드의 두 번째 부분은 파이썬 2.7에서 완벽하게 작동하지만 파이썬 3에서는 파이썬 3에서 작동하도록 변경해야한다는 것을 알고 있습니까? – user2210605