[Python] List * 연산으로 2차원 배열 이상 확장했을 때 Index 참조 문제
arr = [0] * 5# [0, 0, 0, 0, 0] 위 예시와 같이 Python에서는 배열을 * 연산으로 확장할 수 있다. 이 기능은 위와 같은 1차원 배열에서는 별 문제 없이 동작하나 2차원 배열 이상 확장했을 경우에는 아래와 같은 케이스를 만날 수 있다. arr = [[0] * 3] * 3 # [[0, 0, 0][0, 0, 0][0, 0, 0]] arr[0][0] = 1 # [[1, 0, 0][1, 0, 0][1, 0, 0]] 값 변경 시 Index의 참조가 정상적으로 이루어지지 않고 있다. 공식 문서에서는 위 예제와 같은 방식으로 List를 생성할 경우 하나의 배열의 Reference를 사용하여 다른 배열을 생성하므로 위와 같은 케이스가 발생하는 것이라고 설명하고 있다. 🙏 참조 https:/..
2023. 7. 4.
[CSS] 마진 병합, 마진 붕괘, Margin collapsing
Margin collapsing .box { width:150px; height:150px; margin: 20px; /* 상, 하, 좌, 우 여백 모두 20px*/ border: 1px solid; } A B 위 예제와 같이 상, 하, 좌, 우의 여백을 모두 가진 두 DIV 태그를 출력한 결과물은 아래와 같다. 두 DIV의 Margin이 모두 20px 이라면 A DIV와 B DIV 사이 간격이 40px이어야하지만, CSS는 의도적으로 두 마진값을 하나로 병합하여 균일한 정렬에 도움을 주는데 이를 마진병합, 마진붕괘라고 말한다. ※ A박스의 Bottom margin과 B박스의 Top margin 값이 다를 경우 둘 중 큰 값으로 병합한다. 마진 병합이 일어나는 조건은 아래와 같다. 인접해있는 Block ..
2023. 7. 2.