2차원 목록은 목록 의 중첩인 목록의 요소로 다른 목록을 하나의 목록에 넣습니다. C나 C++에 노출된 사람들은 배열의 개념을 이해할 수 있습니다. Python에서는 배열이 타사 라이브러리에 존재하므로 타사 플러그인을 설치하지 않고 Python에서 배열 메서드를 사용하려면 다음을 사용해야 합니다. 2차원 목록입니다.
실제로 목록의 요소는 모든 데이터 유형이 될 수 있습니다. 예를 살펴보겠습니다.
my_list=[[1,2,3,4,5],'dotcpp',{1,2,3,},('www','dotcpp','com')]인쇄(my_list)
출력은 다음과 같습니다
[[1,2,3,4,5],'dotcpp',{1,2,3},('www','dotcpp','com')]
이 목록에는 목록, 문자열, 집합 및 튜플이 포함됩니다. 목록의 모든 요소가 목록인 경우 가장 일반적으로 사용되는 2차원 목록입니다. 다음에서는 2차원 목록을 만들고 액세스하는 여러 가지 방법을 소개합니다.
직접 생성 방법은 목록 이름을 정의한 후 직접 입력하는 것입니다. 간단한 작은 키보드, 즉 1-9를 정의해 보겠습니다.
my_list=[[1,2,3],[4,5,6],[7,8,9]]인쇄(my_list)
출력은 다음과 같습니다
[[1,2,3],[4,5,6],[7,8,9]]
우리가 그것을 이해하면 다음과 같이 이해할 수 있습니다.
그림에서 알 수 있듯이 my_list[0]은 [1,2,3]에 대응하므로 1에 접근하면 해당 좌표는 (0,0)이 되고 인덱스를 통해 접근할 수 있다. 즉, my_list[0 ][0], 그 값은 1에 해당하고 다른 값도 같은 방법으로 접근한다. 예를 들어 요소 9에 해당하는 접근 방법은 my_list[2][2]이다.
목록 생성은 일반적으로 for 루프를 사용하여 수행할 수 있습니다. 코드는 다음과 같습니다.
my_list=[]#먼저 메인 목록을 만듭니다 foriinrange(6):#6번 반복하고 메인 목록의 각 요소에 대해 새 목록을 만듭니다. j=[]#먼저 새 목록을 만들고 메인 목록에 추가합니다. list my_list.append(j)forminrange(1,7):j.append(m)#하위 목록에 요소 추가 print(my_list)#출력
출력은 다음과 같습니다
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3, 4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
실제 출력 결과는 모두가 이해하기 쉽도록 이렇게 정리되어 있습니다. while 루프를 통해 2차원 목록을 만들어 볼 수도 있습니다.
2차원 목록은 목록 이해를 사용하여 생성할 수도 있습니다. 이전 섹션에서 목록 이해를 배웠으므로 이 방법을 직접 사용하여 코드를 단순화할 수 있습니다.
다시 한 번 6개의 행과 6개의 열로 구성된 2차원 목록을 만듭니다. 해당 코드는 다음과 같습니다.
my_list=[[iforiinrange(1,7)]forjinrange(1,7)]인쇄(my_list)
출력은 다음과 같습니다
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3, 4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
이 방법은 시간을 절약할 뿐만 아니라 코드를 최적화합니다. 이는 루프에서 6개의 목록을 만들고 6개의 값을 할당하는 것과 같습니다. 최종적으로 목록에 배치되어 2차원 목록을 형성합니다.
예를 통해 자세히 알아보겠습니다.
우리는 6*6 목록을 만들고 그 안에 있는 값은 1-100 중에서 무작위로 선택됩니다. 코드는 다음과 같습니다:
importrandom#random은 시스템 라이브러리의 모듈이며 언제든지 호출할 수 있습니다. 다음은 간략한 소개입니다. my_list=[]#먼저 목록을 만듭니다. foriinrange(6):#루프에서 6개의 목록을 만들고 my_list j에 넣습니다. =[]my_list.append (j)forkinrange(6):c=random.randint(1,100)#메소드를 무작위로 호출하여 난수를 생성하고, 생성된 난수의 값을 cj.append(c)에 할당합니다# 목록 j에 c print(my_list) 값을 추가합니다.
출력은 다음과 같습니다
[[52,83,15,35,54,60],[17,61,77,99,60,50],[88,81,9,61,76,95],[21,52,20, 49,10,61],[94,81,48,27,80,9],[1,94,57,66,95,97]]
이 질문의 아이디어는 위의 두 번째 방법과 일치합니다. 목록 파생에 능숙하지 않은 학생들은 이전 예제와 비교하여 초기 단계에서 이 방법을 사용할 수 있습니다.
2차원 목록에 관해서는 대회에 참가하려는 학생들에게 매우 중요합니다. 나중에 미로 문제를 만나든 2n 퀸 문제를 만나든 2차원 목록을 사용하지 않으면 할 수 없습니다. 여기서 간단히 소개하겠습니다. 사전 이해로서 후속 경쟁 질문에서 이 두 가지 유형의 질문에 대한 설명이 있을 것입니다. 물론 2차원 목록으로 더 나아갈 수도 있습니다.