각 길이가 0 또는 1 인 n- 길이 튜플의 가능한 모든 값을 나열하는 가변 길이 목록을 생성해야합니다. 따라서 2^n 개의 가능한 튜플이 있습니다. 예를 들어, N의 입력 = 3 내 목록은순열 생성
a=[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0),
(1, 1, 1)]
주 같아야합니다 : 내부 요소, 튜플있는 편리한 경우 목록을 사용하는 경우 그것은 중요하지 않습니다. 또한 최종 목록이 내 예제에 따라 정렬되지 않으면 많은 문제가되지 않습니다. 나는 현재 for 회 돌이를 사용하여이를 수행 할 수 있지만, 더 나은 방법이 있는지 궁금하다. 이것이 제가 작성한 코드입니다.
>>>>newlist=[]
>>>>for i in range(2**n):
s=bin(i)[2:] #spliced to remove the leading '0b' in the string
s='0'*(n-len(s))+s #adding extra zeroes to beginning of string
buffer=tuple(int(i) for i in s)
newlist.append(buffer)
내가 원하는 목록을 생성합니다. 더 나은, 한 - 라이너 방식으로 그것을 할 어떤 제안?
처럼
itertools.product
를 사용할 수 있습니다. – rlms내가 지금 막 얻은 대답은 아주 명확하게 증명한다. :) – Guy