다이나모에서 리스트 분할하기: List.Chop 및 List.Slice 노드 사용법
다이나모에서 리스트(List)를 적절하게 분할하는 것은 데이터 처리 및 구조화에 중요한 작업입니다. 이번 글에서는 리스트를 하위 목록으로 나누는 데 유용한 두 가지 노드, List.Chop과 List.Slice에 대해 다루겠습니다. 이 노드들을 활용하면 다양한 패턴으로 리스트를 분할하고, 원하는 대로 데이터를 처리할 수 있습니다.
1. List.Chop
List.Chop 노드는 입력된 리스트를 Lengths로 정의된 길이만큼 하위 목록으로 나누어 줍니다. Lengths에 지정된 값을 반복해서 적용하여 리스트 전체가 분할될 때까지 작업을 수행합니다. 이 노드를 사용하면 리스트를 일정한 크기의 그룹으로 나누거나, 그룹 크기를 반복하여 다양한 길이로 분할할 수 있습니다.
사용 예시
- 리스트
["A", ..., "J"]
를 Length = 2로 나누면 결과는[ ["A","B"], ["C","D"], ["E","F"], ["G","H"], ["I","J"]
와 같습니다. - 리스트
["A", ..., "J"]
를 Lengths = [1, 3, 2]로 나누면[ ["A"], ["B","C","D"], ["E","F"], ["G","H"], ["I","J"] ]
의 구조가 됩니다.
(1개, 3개. 2개로 나눈 후 데이터가 남으면 마지막으로 남은 길이로 나머지 데이터를 나눔)
이 방법을 사용하면 원하는 크기로 리스트를 자유롭게 나눌 수 있습니다.
실습: List.Chop으로 Point 분할하기
- Line.ByStartPointEndPoint 노드를 사용하여 선(Line)을 생성합니다. 생성된 선의 미리보기는 꺼둡니다.
- Curve.PointAtParameter 노드를 사용하여 선 위에 10개의 분할된 포인트(Point)를 만듭니다. 이때 선의 시작점은 0, 끝점은 1로 설정됩니다.
- List.Chop을 사용하여 10개의 포인트를 길이 2로 분할합니다.
- Line.ByBestFitThroughPoints 노드를 사용하여 분할된 포인트들을 연결해 새로운 선(Line)을 만듭니다.
2. List.Slice
List.Slice 노드는 리스트의 시작 Index, 종료 Index, 그리고 Step 크기에 따라 단일 하위 목록을 반환합니다. 이 노드는 원하는 범위 내에서 리스트의 특정 부분을 추출할 때 매우 유용합니다.
사용 예시
- 리스트
["A", ... , "Z"]
에서 시작 Index = 10, 종료 Index = 20로 지정하면 결과는["K", "L", "M", "N", "O", "P", "Q", "R", "S", "T"]
입니다. - Step 값을 설정하지 않으면 기본적으로 1이 적용되어 모든 항목을 차례로 반환하지만, Step 값을 2로 설정하면
["K", "M", "O", "Q", "S"
]
과 같이 2개씩 건너뛰는 값을 반환합니다.
3. List.Chop과 List.Slice의 차이점
- List.Chop은 리스트를 여러 개의 하위 목록으로 나누어 각각의 그룹을 반환합니다.
- List.Slice는 특정 범위 내에서 한 번에 하나의 하위 목록만 반환하며, 시작과 종료 Index 및 Step을 사용하여 범위를 정의할 수 있습니다.
이 두 노드는 서로 다른 방식으로 리스트를 처리하지만, 복잡한 데이터 구조를 관리할 때 모두 유용하게 사용될 수 있습니다.
4. 마무리
리스트 분할은 다이나모에서 다양한 데이터 처리를 위한 기본 작업 중 하나입니다. List.Chop과 List.Slice는 이러한 리스트 분할을 간편하게 수행할 수 있는 노드입니다. 이 두 노드를 잘 활용하면 효율적으로 데이터를 분할하고, 원하는 형태로 구조화할 수 있습니다. 다음 프로젝트에서 리스트 분할 작업이 필요하다면 이 두 노드를 활용해 보세요!
← 이전 글
다음 글 →
답글 남기기
댓글을 남기려면 로그인 해야 합니다.