파이썬 초급6 (리스트 - 자료형)
파이썬 리스트
1. 리스트
만약 우리가 선언해야 할 값이 5개라면 우리는 변수를 5개를 설정해야 할까???
이런 값을 한꺼번에 처리할 수 없을까 해서 나온 것이 리스트(List)입니다.
리스트(List)는 값을 여러 개 묶어서 선언할 수 있습니다.
1. 리스트 선업 법
오늘도 역시 파이썬IDLE를 켜 [Ctrl+N]으로 새로운 창을 만들어줍니다.
먼저 2단을 변수에 저장한다고 생각한다면
1
2
3
4
|
a1 = 2
a2 = 4
a3 = 6
......중략
|
cs |
이런 비효율적인 코드로 작성할 것입니다.
리스트로 작성한다면 더 쉽게 작성할 수 있습니다.
1
2
|
two = [2,4,6,8,10,12,14,16,18]
print(two)
|
cs |
실행하기 전 저장을 누르고 프로젝트 폴더에 "5 리스트"이란 이름으로 저장해 줍니다.
저장을 했다면 실행을 해주세요.
2단이 깔끔하게 출력되는 걸 확인할 수 있습니다.
리스트는 선언할 때
1
|
변수명 = [값, 값, 값]
|
cs |
이런 식으로 "[]"(대괄호)로 감싸주며 각 값들은 ","(콤마)로 구분해줘야 합니다.
리스트 안에 리스트를 선언할 수 있으며 이러한 방법은 리스트 인덱스를 할 때 매우 편해집니다.
리스트 안에 여러 개의 값을 선언하는 법은 아래와 같습니다.
1
2
|
b = [['2단','2','4','6'],['3단','3','6','9'],'2단과 3단']
print(b)
|
cs |
출력해 봅시다.
자 지금은 상당히 보기 어렵습니다.
그럼 리스트 인덱싱으로 가 볼까요?
2. 리스트 인덱싱
리스트도 문자열처럼 인덱싱이 가능합니다.
맨 밑에 있는 print(b)를 삭제한 뒤 아래의 코드를 넣어주세요.
1
2
|
print(b[0])
print(b[1])
|
cs |
실행해 보겠습니다.
문자열과 같이 리스트도 0부터 세기 때문에 print(b[0])의 코드는 b의 0번째의 값을 가져옵니다.
b의 0번째 값은 "['2단', '2', '4', '6']"이 들어있기 때문에 "2단과 3단"을 출력하게 됩니다.
인덱싱 하는 법과 리스트 값을 변경하는 법은 코드와 주석으로 대체하겠습니다.
1
2
3
4
5
6
7
8
|
print(two[0]) #two변수의 첫번째 값 2인를 가져옵니다.
print(b[-1]) #문자열과 마찮가지로 b의 마지막 값 ['3단','3','6','9']를 가져옵니다.
print(b[0][1]) #b변수의 첫번째 리스트의 두번째의 값 2을 가져옵니다.
two[2] = 100 #리스트 값을 수정합니다.
b[0] = '안녕하세요' #b의 ['2단','2','4','6']부분을 "안녕하세요"로 변경한다.
b[1][0] = '3단단' #b의 '3단'을 "3단단"으로 수정한다.
print(two) #변경내용
print(b) #변경내용 확인
|
cs |
3. 리스트 슬라이싱
리스트도 문자열과 마찬가지로 슬라이싱 할 수 있습니다.
방법은 문자열과 동일합니다.
1
|
print(two[2:5]) #two변수의 세번째 값부터 다섯번째 값 까지 출력합니다.
|
cs |

저장한 뒤 실행해보겠습니다.
역시 문자열과 같이 슬라이싱 해서 출력할 수 있습니다.
나머지 방법은 코드와 주석으로 대체하겠습니다.
1
2
|
print(b[0][1:]) #b변수의 첫번째 값 중에서 두번째 값부터 끝까지 출력한다.
print(two[:4]) #a변수의 첫번째부터 네번째 값까지 출력된다.
|
cs |
4. 리스트 연산
리스트도 "+"와 "*"연산을 사용할 수 있습니다.
리스트 덧셈(+연산자)
1
2
|
three = [3,6,9,12,15,18,21,24,27]
print(two+three) #two리스트와 three리스트를 연결해서 출력한다.
|
cs |
실행해 보겠습니다.
위와 같이 "+" 연산자는 두 리스트를 연결해줍니다.
리스트 곱셈(*연산자)
1
|
print(two*2)
|
cs |
실행해 줍니다.
two에 있는 값들이 두 번 출력되었습니다.
"*"연산자는 리스트 안에 있는 값을 반복합니다.
5. 리스트 관련 함수
설명은 코드와 주석으로 대체하겠습니다.
리스트의 길이 보는 법(len)
1
|
print(len(two)) #two리스트의 개수인 9를 반환한다.
|
cs |
리스트 삭제하는 법(del)
1
2
3
4
|
del(two) #two리스트를 삭제한다
del(b[0]) #b의 리스트에 첫번째 값을 삭제한다.
print(b) #b의 첫번째 값인 ['2단', '2', '4', '6']이 삭제된 값을 반환한다.
print(two) #two가 존재하지 않기 때문에 오류가 발생한다.
|
cs |
리스트에 추가하는 법(append)
1
2
|
two.append(20) #two에 마지막에 20이란 값을 추가한다.
print(two) #20이 추가된 two리스트를 출력한다.
|
cs |
리스트 정렬(sort)
1
2
3
|
a = [5,4,2,1,3]
a.sort() #리스트의 값을 [1,2,3,4,5]순으로 정렬한다.
print(a)
|
cs |
리스트 뒤집기(reverse)
1
2
3
|
a = [5,4,2,1,3]
a.reverse() #a를 뒤집어 [3,1,2,4,5]를 만든다.
print(a)
|
cs |
리스트에 있는 값 세기(count)
1
2
|
a = [1,2,1,3,1,4,1,5]
print(a.count(1)) #count(x)는 리스트안에 x가 몇 개 있는지 반환한다.
|
cs |
리스트 위치(index)
1
2
|
a = [5,4,1,2,3]
print(a.index(2)) #index(x)는 x값의 위치를 반환한다.
|
cs |
리스트 삽입(insert)
1
2
3
|
a = [5,4,1,2,3]
a.insert(2,10) #insert(x,y)는 y의 값을 x에 넣어준다.
print(a) #[5,4,10,1,2,3]을 반환한다.
|
cs |
리스트 값 빼오기(pop)
1
2
|
a = [5,4,1,2,3]
a.pop(2) #pop(x)는 x위치에 있는 값은 반환하고 그 값을 뺀다 x가 없다면 마지막 값을 뺀다.
|
cs |
리스트 값 제거(remove)
1
2
|
a = [4,5,4,1,2,3]
a.remove(4) #remove(x)는 첫 번째로 나오는 x를 삭제한다.
|
cs |
수고하셨습니다.
코드를 치면서 이해해주면 감사하겠습니다.
※요약
리스트도 문자열처럼 더하기 곱하기 연산이 가능하며
슬라이싱이 가능하다.
여러 개의 변수를 설정하는 것보다.
리스트를 사용하는 것이 효율적이다.
※숙제
구구단 리스트를 한 변수에 담고
2단 3단 단별로 출력해주세요.
3단 리스트를 만들고 필요한 값만 빼주세요.
오늘은 파이썬의 리스트 자료형에 대해서 배워보았습니다.
아직 생소하신 분들도 있을 테니 손으로 더 코딩하면서 익숙해지시면 될 것입니다.
리스트는 매우 중요하니 이해할 때까지 하셔야 합니다.
다음 시간에는 튜플 자료형에 대해서 배워보겠습니다.