파이썬의 목록은 일반적으로 요소가 차례로 나열되는 1D 목록입니다. 그러나 2D 목록에서는 외부 목록 내부에 중첩된 목록이 있습니다. 이 기사에서는 주어진 1D 목록에서 2D 목록을 만드는 방법을 볼 것입니다. 또한 2D 목록 내의 요소 수에 대한 값을 프로그램에 제공합니다.
추가 및 색인 사용
이 접근 방식에서 우리는 2D 목록의 각 요소를 반복하는 for 루프를 만들고 생성할 새 목록의 인덱스로 사용합니다. 인덱스 값은 0에서 시작하여 2D 목록에서 받은 요소에 추가하여 계속 증가시킵니다.
예시
# Given list listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] # Length of 2D lists needed len_2d = [ 2, 4] #Declare empty new list res = [] def convert(listA, len_2d): idx = 0 for var_len in len_2d: res.append(listA[idx: idx + var_len]) idx += var_len convert(listA, len_2d) print("The new 2D lis is: \n",res)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
The new 2D lis is: [[1, 2], [3, 4, 5, 6]]
islice 사용
islice 함수는 2D 목록에서 요구하는 특정 수의 요소로 주어진 목록을 슬라이스하는 데 사용할 수 있습니다. 그래서 이번 주에는 2D 목록의 각 요소를 살펴보고 그 값을 사용하여 원래 목록의 슬라이스 2를 사용합니다. islice 함수를 사용하려면 itertools 패키지가 필요합니다.
예시
from itertools import islice # Given list listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] # Length of 2D lists needed len_2d = [ 3, 2] # Use islice def convert(listA, len_2d): res = iter(listA) return [list(islice(res,i)) for i in len_2d] res = [convert(listA, len_2d)] print("The new 2D lis is: \n",res)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
The new 2D lis is: [[['Sun', 'Mon', 'Tue'], ['Wed', 'Thu']]]