파이썬을 사용하여 데이터를 분석하거나 데이터를 처리할 때, 우리는 다른 열을 가진 목록을 얻기 위해 주어진 목록을 리모델링하거나 재구성해야 하는 상황을 접하게 됩니다. 우리는 아래에서 설명하는 여러 접근 방식으로 이를 달성할 수 있습니다.
슬라이싱 사용
특정 요소에서 목록을 조각화하여 기둥 구조를 만들 수 있습니다. 여기에서 주어진 목록을 요소가 중간에서 분할되는 새 목록으로 변환합니다. 우리는 두 개의 for 루프를 고소합니다. 바깥쪽은 0번째 요소에서 두 번째 요소로 요소를 분할하고 안쪽 요소는 두 번째 요소에서 마지막 요소로 분할합니다.
예시
x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]] #Using list slicing and list comprehension print ("The Given input is : \n" + str(x)) result = [m for y in [[n[2: ], [n[0:2]]] for n in x] for m in y] print ("Converting column to separate elements in list of lists : \n" + str(result))
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The Given input is : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] Converting column to separate elements in list of lists : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]
itertools.chain() 및 목록 이해
두 개의 for 루프 대신 itertools의 chain 메서드를 사용할 수도 있습니다. 목록 이해를 사용하여 위와 동일한 논리를 적용하고 주어진 목록의 중간에 열이 분할된 결과를 얻습니다.
예시
from itertools import chain x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]] #Using list slicing and list comprehension print ("The Given input is : \n" + str(x)) res = list(chain(*[list((n[2: ], [n[0:2]])) for n in x])) print ("Converting column to separate elements in list of lists : \n" + str(res))
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The Given input is : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] Converting column to separate elements in list of lists : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]