본문 바로가기
Python

[Python] 리스트, 이차원리스트 인덱싱, 슬라이싱, 값추가/삭제, 메

by ybin.im 2024. 12. 1.

1. 리스트와 이차원리스트

 리스트는 여러 데이터를 저장할 수 있는 자료형이다.

다음과 같은 형태를 가지고 있다.

 리스트변수 = [ idx1, idx2, idx3 ]

 

 이차원리스트는  리스트 안에 리스트를 넣은 것

행(row)과 열(column)로 이루어진 데이터이다.

리스트변수 = [
    [ idx1, idx2, idx3 ],
    [ idx1, idx2, idx3 ],
    [ idx1, idx2, idx3 ]
]

리스트변수[행idx][열idx]

2. 리스트 특징

리스트는 순서가 중요하다. (인덱스 값)

-  리스트의 요소를 넣으면 각 요소가 순서대로 번호(인덱스 값)을 가지게 된다.

-  인덱스 값은 0부터 시작한다.

 

▶ 인덱스 값으로 항목 검색 가능

 

▶ 새로운 항목 추가/삭제 가능

 

▶ 숫자형, 문자열 혼합하여 값을 넣을 수 있다.

 

 


3. 리스트 만드는 방법

▶ 리스트명 = [ 요소 ]

이렇게 대괄호를 사용하여 리스트를 만들 수 있다.

데이터의 자료형은 꼭 같아야 하는 건 아니다.

 

 2,3번 라인의 출력 결과이다.

name을 출력하면 전체 리스트가 출력되고,

인덱스값을 이용해서 원하는 값을 출력할 수 있다.

 

그냥 빈 [ ]만 사용한다면 아무 값도 저장되지 않은 리스트가 생성된다.

 

▶ list() 함수 사용

list([ 요소 1, 요소 2 ])와 같은 형식으로 사용한다.


4. 리스트, 이차원리스트 인덱싱

인덱싱은 리스트의 인덱스 값에 저장된 개별 데이터에 접근하는 것이다.

리스트 인덱싱 : 리스트명[ idx ]
이차원리스트 인덱싱 : 리스트명[ idx : idx ]

리스트 인덱싱

 

num [1] = 2, eng [2] = 'c'로 2 c 가 출력됨

 

이차원리스트 인덱싱

text [2][0] = 'c'로 c만 출력됨


5. 리스트 슬라이싱

 슬라이싱은 범위를 지정해서 그 사이의 값을 가져오는 것.

 형식 : 리스트명[  idx : idx ]  (idx는 인덱스 값)
 
 범위 : idx <= 값 < idx

 

dog 리스트를 만들고 인덱스값 0:3을 지정해 줬다.

인덱스 값이 0번인 보더콜리부터 값이 2번인 말티즈까지 나왔다. ( 0 <= dog < 3 )


6. 리스트 값수정, 삭제, 연산

▶ 값수정
리스트[idx] = 값
인덱스 값으로 접근하여 값을 수정할 수 있다.
인덱스 값으로 접근한다면, 인덱스 값을 넘는 값을 수정할 수 없다.

 

인덱스 값 0번을 "진돗개"로 수정

0번 값이 진돗개로 수정되었다.

 이렇게 리스트의 값을 수정할 때, 인덱스 값을 넘는 부분을 수정하려고 하면

IndexError 발생

▶ 값삭제
del 리스트[인덱스값]
del 리스트[idx : idx] : 리스트 슬라이싱으로 여러 값 삭제 가능

1. idx값 0번 삭제

2. idx값 [1:3] 삭제

1. 0번 삭제

2. 이후 1번, 2번 삭제

▶ 값연산
+, * 연산자를 통해서 연산가능
+ : 리스트 합치기
* : 리스트 반복

이런 결과를 얻을 수 있다.


7. 이차원리스트 값추가, 수정, 삭제

▶ 값추가
열 추가 : 리스트[열인덱스] + [값]
행 추가 : 리스트 + [ [ 값 ] ]

결과

 

▶ 값수정
리스트[idx][idx] = 값
▶ 행삭제
del 리스트[idx]
▶ 열삭제
del 리스트[idx][idx]

결과


8. 메서드를 사용한 추가

extend() : 맨 마지막에 리스트 확장
append() : 맨 마지막 행에 리스트 추가
insert() : 원하는 위치에 행 삽입

▶ extend()

결과

값을 맨 뒤쪽에 풀어서 리스트의 행을 확장시킨다. 

 

▶ append()

결과

 값을 맨 뒤쪽에 그대로 추가한다.

결과

 특정 행에 값을 하나씩 추가할 수 도 있다.

 

▶ insert()

리스트.insert[행]. insert(열, 추가값)

리스트.insert(행, 추가값)