파이썬 반복되는 변수 선언
조회수 1374회
array1 = np.array(img[y+1,x])
array2 = np.array(img[y+2,x])
array3 = np.array(img[y+3,x])
array4 = np.array(img[y+4,x])
array5 = np.array(img[y+5,x])
array6 = np.array(img[y+6,x])
array7 = np.array(img[y+7,x])
array8 = np.array(img[y+8,x])
array9 = np.array(img[y+9,x])
array10 = np.array(img[y+10,x]) ...
이렇게 반복되는 변수를 선언하고 싶은데 for문을 사용해서 어떻게 나타낼까요?
img[y+1,x] = [0, 255, 255] 와 같은 B,G,R 배열값을 가지고 있습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
array1, array2 같은 변수명은 나중에 다시 사용할 때에도 번거롭습니다.
대신에 array 라는 리스트형 변수를 선언하고, array[0], array[1] 같은 방식으로 접근하여 사용하는 것이 나중에 for 문 등에서 사용하기도 편리합니다.
array = [] for i in range(1, 11): array.append(np.array(Img[y+i, x]) # array[0] = np.array(Img[y+1, x]) # array[1] = np.array(Img[y+2, x]) # ...
Img가 numpy array 이기 때문에
array = Img[y+1:y+11, x]
와 같은 방법이 더 자주 쓰일 것 같습니다.
-
파이썬에서는 공 list 변수를 선언하는 식의 코딩은 좋은 방식이 아닙니다.
아래와 같이 list comprehension 을 활용을 권장합니다.
array = [np.array(Img[y+i, x]) for i in range(1, 11)]
댓글 입력