가능한 모든 이진 조합을 목록으로 생성하는 방법을 찾고 있습니다. 예를 들어 사용 가능한 공백이 5 개있는 경우 [ "00000", ..., "11111"]에서 가능한 모든 조합을 포함하는 목록을 만들고 싶습니다. 잘 설명했는지 모르겠습니다. 나는 여기에서 비슷한 질문을 찾았지만 내가 찾고있는대로 구현했습니다 ...
indexNames = ["00000", "00001", "00010", ..., "11111"]
n = 5 인 경우
indexNames = ["00", "01", "10", "11"]
n = 2 인 경우
itertools.product를 사용해야합니다.
생성기 표현식의 중첩 된 for 루프와 거의 동일합니다. 예를 들어 product(A, B)
다음과 같은 결과를 반환합니다. ((x,y) for x in A for y in B)
중첩 루프는 모든 반복에서 가장 오른쪽 요소가 진행되는 주행 거리계처럼 순환합니다. 이 패턴은 입력의 반복 가능 항목이 정렬되면 제품 튜플이 정렬 된 순서로 방출되도록 사전 식 순서를 만듭니다.
from itertools import product
def get_binary(length):
perm=product(['0', '1'], repeat=length)
possible_bin=[]
for i in list(perm):
my_bin=''.join(i)
possible_bin.append(my_bin)
return possible_bin
print(get_binary(3))
print(get_binary(4))
print(get_binary(5))
['000', '001', '010', '011', '100', '101', '110', '111']
['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']
['00000', '00001', '00010', '00011', '00100', '00101', '00110', '00111', '01000', '01001', '01010', '01011', '01100', '01101', '01110', '01111', '10000', '10001', '10010', '10011', '10100', '10101', '10110', '10111', '11000', '11001', '11010', '11011', '11100', '11101', '11110', '11111']
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다